1
私のプログラムが現在表示されているビューがメインアクティビティですが、主なアクティビティはexpense_entry.xmlのビューを含むリストビューです。各エントリには、3つのテキストビューと削除ボタンがあります。これは主な活動の中で私が作成したものです。質問はfindViewById(deleteButton)を実行するときです... 25個のボタンがある場合、どのボタンがそのボタンを参照しているかをどのように知っていますか?これは私がヌルポインタを取得している理由です。リストビューから削除ボタンを使用してアイテムを削除する
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.viewlist);
dbHelper = new RecordsDbAdapter(this);
dbHelper.open();
//Add some data
// dbHelper.insertSomeRecords();
//Generate ListView from SQLite Database
displayListView();
// setContentView(R.layout.expense_entry);
Button deleteBtn = (Button) this.findViewById(R.id.btn_delete);
deleteBtn.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View v) {
//do something
ViewGroup parent = (ViewGroup) v.getParent();
// final ConstraintLayout c = this;
for (int itemPos = 0; itemPos < parent.getChildCount(); itemPos++) {
View view = parent.getChildAt(2);
if (view.getParent() == parent) {
dbHelper.deleteSingleRow(String.valueOf(view.findViewById(R.id.textViewDateTime)));
dataAdapter.notifyDataSetChanged();
}
}}