在这个应用程序中有一个主要活动,包括按钮,显示食品应用程序中涉及的类别。我们刚刚开始研究“汉堡”类别。单击Burger Category后,将打开另一个名为“Burgers.java”的活动。将添加新按钮和listview,显示数据库中的数据。当我们点击添加新内容时,将打开一个命名为“AddBurgers.java”的活动,我们可以在其中输入新汉堡的价格和名称到数据库中,它也将显示在列表视图中。
我已经制作了“ListAdapter.java”和“SQLiteHelper.java”活动,这些活动有助于将数据添加到数据库,然后在listview中显示它。
现在我们面临的问题是,我们想要在项目长按上删除列表视图的项目,并且想要在项目点击时在通知面板中显示项目的数据。此外,如果我们点击通知,它将打开lisview。 Burgers.java
public class Burgers extends Activity {
SQLiteHelper sqLiteHelper;
SQLiteDatabase sqLiteDatabase;
Cursor cursor;
ListAdapter listAdapter ;
ListView LISTVIEW;
ArrayList<String> ID_Array;
ArrayList<String> NAME_Array;
ArrayList<String> PRICE_Array;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_burgers);
Button btn = (Button)findViewById(R.id.button5);
btn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
startActivity(new Intent(Burgers.this, AddBurgers.class));
}
});
LISTVIEW = (ListView) findViewById(R.id.listview1);
ID_Array = new ArrayList<String>();
NAME_Array = new ArrayList<String>();
PRICE_Array = new ArrayList<String>();
sqLiteHelper = new SQLiteHelper(this);
LISTVIEW.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
listAdapter.notifyDataSetChanged();
}
});
}
@Override
protected void onResume() {
ShowSQLiteDBdata() ;
super.onResume();
}
private void ShowSQLiteDBdata() {
sqLiteDatabase = sqLiteHelper.getWritableDatabase();
cursor = sqLiteDatabase.rawQuery("SELECT * FROM "+SQLiteHelper.TABLE_NAME+"", null);
ID_Array.clear();
NAME_Array.clear();
PRICE_Array.clear();
if (cursor.moveToFirst()) {
do {
ID_Array.add(cursor.getString(cursor.getColumnIndex(SQLiteHelper.COL_1)));
NAME_Array.add(cursor.getString(cursor.getColumnIndex(SQLiteHelper.COL_2)));
PRICE_Array.add(cursor.getString(cursor.getColumnIndex(SQLiteHelper.COL_3)));
} while (cursor.moveToNext());
}
listAdapter = new ListAdapter(Burgers.this,
ID_Array,
NAME_Array,
PRICE_Array
);
LISTVIEW.setAdapter(listAdapter);
cursor.close();
}
}
list adapter.Java
public class ListAdapter extends BaseAdapter {
Context context;
ArrayList<String> ID;
ArrayList<String> Name;
ArrayList<String> Price;
public ListAdapter(
Context context2,
ArrayList<String> id,
ArrayList<String> name,
ArrayList<String> price
)
{
this.context = context2;
this.ID = id;
this.Name = name;
this.Price = price;
}
public int getCount() {
// TODO Auto-generated method stub
return ID.size();
}
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
public View getView(int position, View child, ViewGroup parent) {
Holder holder;
LayoutInflater layoutInflater;
if (child == null) {
layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
child = layoutInflater.inflate(R.layout.activity_row_design, null);
holder = new Holder();
holder.ID_TextView = (TextView) child.findViewById(R.id.textView2);
holder.Name_TextView = (TextView) child.findViewById(R.id.textView10);
holder.PriceTextView = (TextView) child.findViewById(R.id.textView11);
child.setTag(holder);
} else {
holder = (Holder) child.getTag();
}
holder.ID_TextView.setText(ID.get(position));
holder.Name_TextView.setText(Name.get(position));
holder.PriceTextView.setText(Price.get(position));
return child;
}
public class Holder {
TextView ID_TextView;
TextView Name_TextView;
TextView PriceTextView;
}
}
SQLite helper.Java
public class SQLiteHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "Afoods.db";
public static final String TABLE_NAME = "burger_table";
public static final String COL_1 = "ID";
public static final String COL_2 = "NAME";
public static final String COL_3 = "PRICE";
public SQLiteHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table " + TABLE_NAME +" (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, PRICE TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS "+TABLE_NAME);
onCreate(db);
}
public boolean insertData(String name,String price) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL_2,name);
contentValues.put(COL_3,price);
long result = db.insert(TABLE_NAME,null ,contentValues);
if(result == -1)
return false;
else
return true;
}
}
add burgers.Java
public class AddBurgers extends AppCompatActivity {
SQLiteHelper myDb;
EditText editName,editPrice;
Button btnAddData;
Button btnviewAll;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_burgers);
myDb = new SQLiteHelper(this);
editName = (EditText)findViewById(R.id.editText);
editPrice = (EditText)findViewById(R.id.editText2);
btnAddData = (Button)findViewById(R.id.button);
btnviewAll = (Button)findViewById(R.id.button2);
AddData();
btnviewAll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(AddBurgers.this, Burgers.class);
startActivity(intent);
}
});
}
public void AddData() {
btnAddData.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean isInserted = myDb.insertData(editName.getText().toString(),
editPrice.getText().toString() );
if(isInserted == true)
Toast.makeText(AddBurgers.this,"Data Inserted",Toast.LENGTH_LONG).show();
else
Toast.makeText(AddBurgers.this,"Data not Inserted",Toast.LENGTH_LONG).show();
}
}
);
}
}
任何帮助将受到高度赞赏。我已经工作了15天。我上面提到的代码运行得很好。我只需要在其中添加删除和通知功能。