Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 获取选定的ListView项目ID(使用SQLite DB填充的数据)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个数据库,可以跟踪用户的提醒数据(提醒名称,注释,日期,时间等).第一列是它的主键(_ID). ListView是从数据库中填充的,它显示了一组带有提醒名称的简单行,如下所示:

垃圾带出去.

遛狗

吃午餐.

等等

现在我的问题是,如何让我的应用程序找出点击了哪个特定提醒?单击一行时,我需要从我的数据库中找到其主键(_ID列),并能够检索该行中的所有数据.

到目前为止,我知道我需要使用onItemClick来检测点击.但是,如何获取已单击的项目的主键值(_ID)?我当前的代码如下所示:

final Context context = this;

//DB Connectivity variables.
protected RemindersDAO remindersDAO;
protected SimplecursorAdapter reminderscursorAdapter;
public ListView viewRemindersListView;

@SuppressWarnings("deprecation")
@Override
public void onCreate(Bundle savedInstanceStatE) {
    super.onCreate(savedInstanceStatE);
    setContentView(R.layout.activity_view_local_reminders);

    // Get rid of the app title in the action bar.
    ActionBar actionBar = getSupportActionBar();
    actionBar.setDisplayShowtitleEnabled(false);

    viewRemindersListView = (ListView) findViewById(R.id.listview_view_local_reminders);

    remindersDAO = new RemindersDAO(this);
    cursor cursor = remindersDAO.all(this);

    reminderscursorAdapter = new SimplecursorAdapter(this,R.xml.view_reminders_item_layout,cursor,new String [] { RemindersDAO.NAME },new int[] { R.id.view_reminders_item_text } );

    viewRemindersListView.setAdapter(reminderscursorAdapter);
}

@Override
public void onItemClick(AdapterView<?> listView,View view,int position,long arg3) {
    remindersDAO = new RemindersDAO(this);
    cursor cursor = remindersDAO.all(this);

    int idColIndex = cursor.getcolumnIndex(RemindersDAO._ID); 
    int rowId = cursor.geTint(idColIndeX); 
}

@Override
public Boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
    // TODO Auto-generated method stub
    MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.activity_view_local_reminders,menu);

    return super.onCreateOptionsMenu(menu);
}

public Boolean onOptionsItemSELEcted(MenuItem item) {
     //Set the classes that are called from each actionbar item.
     switch (item.getItemId()) {
         case R.id.local_reminders_actionbar_go_advanced:
             Intent i=new Intent(this,AdvancedNewReminder.class);
             startActivity(i);
             return true;
         case R.id.local_reminders_actionbar_simple_reminder:
             Intent k = new Intent(this,QuickNewReminder.class);
             startActivity(k);
             return true;

             /* case R.id.local_reminders_actionbar_google_tasks:
             showGoogleTasksBetaDialog();
             return true; */

     }
     return false;
 }

@Override
public void onBACkPressed() {
    return;
}

}

感谢你的帮助!

解决方法

在onItemClick方法中,您可以看到第3个param -long id是数据库中的id.所以你只需简单地获得点击的项目ID

@Override
    public void onItemClick(AdapterView<?> listView,long arg3) {
       Log.d("Clicked item id"," "+ arg3); 
    }

如果你想要其他字段,你应该获得点击项目的光标

@Override
    public void onItemClick(AdapterView<?> listView,long arg3) {
     cursor item=   (cursor) remindercursorAdapter.getItem(position);
Log.d("Clicked item field"," "+ item.getcolum(your colum indeX)); 
    }

大佬总结

以上是大佬教程为你收集整理的android – 获取选定的ListView项目ID(使用SQLite DB填充的数据)全部内容,希望文章能够帮你解决android – 获取选定的ListView项目ID(使用SQLite DB填充的数据)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。