Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:删除所选列表项_Java_Android_Sqlite_Android Studio - Fatal编程技术网

Java Android:删除所选列表项

Java Android:删除所选列表项,java,android,sqlite,android-studio,Java,Android,Sqlite,Android Studio,所以我有一个叫做ShowActivity.java的类。在这个类中,我从sqlite数据库获得一个列表。 我在此列表视图中添加了两个按钮“显示数据”和“删除数据”。所以,一旦我选择了一个列表项,我想执行任何一个操作显示数据或根据按钮单击事件删除所选行 在下面的代码中。我所做的是选择一行,一旦我点击一行项目,我会得到一个完整的祝酒词,其中包含该行的信息 我想做的是: 一旦我选择了一行,如果我点击ShowData按钮,我应该会得到我现在得到的信息。或 一旦我选择了一行,若我点击删除数据按钮,我应该从

所以我有一个叫做ShowActivity.java的类。在这个类中,我从sqlite数据库获得一个列表。 我在此列表视图中添加了两个按钮“显示数据”和“删除数据”。所以,一旦我选择了一个列表项,我想执行任何一个操作显示数据或根据按钮单击事件删除所选行

在下面的代码中。我所做的是选择一行,一旦我点击一行项目,我会得到一个完整的祝酒词,其中包含该行的信息

我想做的是: 一旦我选择了一行,如果我点击ShowData按钮,我应该会得到我现在得到的信息。或

一旦我选择了一行,若我点击删除数据按钮,我应该从listview和数据库中删除该数据

public class ShowlistActivity extends Activity {
 String myBtnListener;
private ListView listView;
Button showBtn =findViewById(R.id.show_btn);
Button deleteBtn=findViewById(R.id.delete_btn)

@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.showlist_ehr);

    listView = (ListView) this.findViewById(R.id.checkout_listview);
    listView.setOnItemClickListener(new ItemClickListener());

    // get the sql string delivered from the QueryActivity
    Intent intent = this.getIntent();
    String sql = intent.getStringExtra("sql");
    // execute the sql
    Cursor cursor = DBOperator.getInstance().execQuery(sql);
    // bind the data to list
    SimpleCursorAdapter adapter = new SimpleCursorAdapter(
            getApplicationContext(), R.layout.listitem_ehr, cursor,
            new String[] { "PaFirstName", "VisitDate", "MedIssue" }, new 
int[] {
            R.id.stname, R.id.coduedate, R.id.lbtitle },
            SimpleCursorAdapter.IGNORE_ITEM_VIEW_TYPE);
    listView.setAdapter(adapter);
    showBtn.setOnClickListener(myBtnListener);
    button2.setOnClickListener(myBtnListener);

    View.OnClickListener myBtnListener= new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            switch(view.getId()){
                case R.id.button1_id:
                    //do button 1 action
                    break;
                case R.id.button2_id:
                    //do button 2 action
                    break;
            }
        }
    }
}

private class ItemClickListener implements OnItemClickListener {
    public void onItemClick(AdapterView<?> parent, View view, int position,long id) {

        Cursor cursor = (Cursor) listView.getItemAtPosition(position);
        String stid = cursor.getString(0);
        String lbtitle = cursor.getString(1);
        String coduedate = cursor.getString(2);
        //String coreturned = cursor.getString(3);
        // cofine = cursor.getString(4);
        //String stname = cursor.getString(5);
        Toast.makeText(getApplicationContext(),"Student ID: " + stid + "\nStudent Name: " + lbtitle+ "\nBook Title: " + coduedate , Toast.LENGTH_LONG).show();



    }
}


}

将选择模式添加到listview。圆角_边框是一种自定义的可绘制边框,用作选定项目的指示器

android:choiceMode="singleChoice"
android:listSelector="@drawable/rounded_border"
更新您的onCreate

@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.showlist_ehr);

...

...

    View.OnClickListener myBtnListener= new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            if(listView.getCheckedItemPosition() >= 0) {
               //get the object
               Cursor selectedCursor = (Cursor) listView.getItemAtPosition(listView.getCheckedItemPosition());

               switch(view.getId()){
                   case R.id.show_btn:
                       //show selectedCursor details
                       break;
                   case R.id.delete_btn:
                       String stid = selectedCursor.getString(0);
                       //change the stud_id to your database field id name
                       String sql = "DELETE FROM Student WHERE stud_id = '" + stid + "'";
                       Cursor cursor = DBOperator.getInstance().execQuery(sql);
                       adapter.changeCursor(cursor);
                       break;
               }
           }
        }
    }

    showBtn.setOnClickListener(myBtnListener);
    deleteBtn.setOnClickListener(myBtnListener);
}

我已经看到这个解决方案的可能重复。不符合我的问题。我想在选中行并单击“显示”按钮时显示祝酒词。另一件事是我想在delete button click事件中删除一个选中的行。