I want to add data to database ecapp then search and display result in list view every time I click save button the app closed there are no errors. I don't know what is wrong.
I am a beginner.
DatabaseHelper.java:
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import android.widget.Toast;
public class DatabaseHelper extends SQLiteOpenHelper {
DatabaseHelper dbh;
Context con;
SQLiteDatabase db2;
declaration dec;
public static final String DATABASE_NAME = "ecapp";
public static final int DATABASE_VERSION = 2;
public DatabaseHelper(Context con) {
super(con, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
try {
db.execSQL(dec.DATABASE_create1);
db.execSQL(dec.DATABASE_create2);
} catch (Exception e) {
Log.e("dataase didnot created ", "retry ");
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS ecapp");
onCreate(db);
}
public DatabaseHelper open() {
db2 = dbh.getWritableDatabase();
return this;
}
public void close() {
dbh.close();
}
public long insertData(String name,String ingredant ,String discrption) {
ContentValues content = new ContentValues();
content.put(dec.ecapp_col_name, name);
content.put(dec.ecapp_col_ingredant, ingredant);
content.put(dec.ecapp_col_discrption, discrption);
return db2.insertOrThrow("ecapp", null, content);
}
public Cursor returndata(String name, SQLiteDatabase sqldb)
{
String selection, selectionArg;
Cursor query;
String[] projection = {dec.ecapp_col_name};
String[] where = {dec.ecapp_col_name};
query = sqldb.query(dec.TABLE_NAME1, projection, "name=?", where, null, null, null);
// query =sqldb.query()"select "+ecapp_col_name+" from "+TABLE_NAME+"where"+ecapp_col_name+"="+name;
//Log.d( "get all data:", query);
return query;
}
public String getName(Cursor c) {
return (c.getString(1));
}
}
declaration.java:
public class declaration {
public static int _id ;
public static final String ecapp_col_name = "name";
public static final String ecapp_col_discrption = "discrption";
public static final String ecapp_col_ingredant = "ingredant";
public static final String ecapp_image = "image";
public static final String ecapp_col_Optional_ingredant = "Optional_ingredant";
public static final String TABLE_NAME1 = "recipe";
public static final String TABLE_NAME2 = "ingredant";
public static final String DATABASE_create1 = "create"+ TABLE_NAME1+ "("+_id +"number not null auto_increment,"+ecapp_col_name+" text primary key,"+ecapp_col_discrption +"text+ );";
public static final String DATABASE_create2 = "create "+TABLE_NAME2+ "("+ ecapp_col_ingredant+"text ,"+ecapp_col_Optional_ingredant+"text ,"+_id+ "number );";
}
searchActivity.java:
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.content.Intent;
import android.database.Cursor;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.CursorAdapter;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
public class searchActivity extends Activity{
public class resultActivity extends ActionBarActivity {
EditText rname;
TextView result;
Button search;
declaration dec;
DatabaseHelper db;
ListView data;
ListAdapter listAdapter;
String search_name;
SQLiteDatabase sqLiteDatabase;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search);
search = (Button) findViewById(R.id.search);
rname = (EditText) findViewById(R.id.rname);
data = (ListView) findViewById(R.id.data);
data.setAdapter(listAdapter);
listAdapter = new ListAdapter(getApplicationContext(), R.layout.result);
data.setVisibility(View.GONE);
search.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
search_name = rname.getText().toString();
db = new DatabaseHelper(getApplicationContext());
sqLiteDatabase = db.getReadableDatabase();
Cursor d = db.returndata(search_name, sqLiteDatabase);
if (d.moveToFirst()) {
do {
String result_search;
result_search = d.getString(0);
//data.setAdapter(result_search);
dataProvider provider = new dataProvider(result_search);
listAdapter.add(provider);
} while (d.moveToNext());
}
}
});}}}
dataProvider.java:
public class dataProvider {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public dataProvider (String name)
{
this.name =name;
}}
ListAdapter.java:
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import java.net.ContentHandler;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
public class ListAdapter extends ArrayAdapter {
List list= new ArrayList();
static class layoutHandler
{
TextView nameText;
}
public ListAdapter(Context context, int resource)
{
super(context, resource);
}
@Override
public void add (Object object){
super.add(object);
list.add(object);
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
layoutHandler layouthandler;
if (row==null){
LayoutInflater layoutInflater =(LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row=layoutInflater.inflate(R.layout.listrow,parent,false);
layouthandler=new layoutHandler();
layouthandler.nameText=(TextView)row.findViewById(R.id.nameText);
}
else
{
layouthandler =(layoutHandler) row.getTag();
}
dataProvider provider=(dataProvider)this.getItem(position);
layouthandler.nameText.setText(provider.getName());
return row;
}
}
MainActivity.java:
public class MainActivity extends Activity {
Button save;
EditText name,ingredant,discrption,Optional_ingredant;
DatabaseHelper dbr;
SQLiteDatabase sql;
Context context=this;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
save = (Button) findViewById(R.id.save);
name = (EditText) findViewById(R.id.nameText);
ingredant = (EditText) findViewById(R.id.ingredant);
discrption = (EditText) findViewById(R.id.discrption);
public void onClick(View v) {
String getName = name.toString();
String getingredant = ingredant.toString();
String getdiscrption = discrption.toString();
dbr = new DatabaseHelper(getBaseContext());
dbr.open();
long id = dbr.insertData(getName,getingredant, getdiscrption);
Toast.makeText(getBaseContext(), "data inserted", Toast.LENGTH_LONG).show();
setContentView(R.layout.search);
}});}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
android:id="@+id/relative">
activity_main.xml:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="name"
android:id="@+id/nametext"
android:layout_marginTop="155dp"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/name"
android:layout_alignParentEnd="true"
android:layout_toEndOf="@+id/nametext"
android:layout_above="@+id/ingredanttext" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="discrptiontext"
android:id="@+id/discrptiontext"
android:layout_alignTop="@+id/discrption"
android:layout_alignParentStart="true" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textMultiLine"
android:ems="10"
android:id="@+id/discrption"
android:layout_above="@+id/save"
android:layout_alignStart="@+id/ingredant" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="save"
android:id="@+id/save"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ingredant"
android:id="@+id/ingredanttext"
android:layout_marginTop="101dp"
android:layout_below="@+id/nametext"
android:layout_alignParentStart="true" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ingredant"
android:layout_alignParentEnd="true"
android:layout_below="@+id/ingredanttext"
android:layout_toEndOf="@+id/ingredanttext" />
listrow.xml:
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/nameText"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true" />
</RelativeLayout>
result.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:id="@+id/result1"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"
android:layout_alignParentBottom="true"
android:layout_alignParentTop="true" />
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/data"
android:layout_alignParentEnd="true"
android:choiceMode="singleChoice" />
</RelativeLayout>
0 comments:
Post a Comment