【问题标题】:getItemIdAtPosition() in listview not showing列表视图中的 getItemIdAtPosition() 未显示
【发布时间】:2023-04-03 05:27:01
【问题描述】:

我需要从 listView 获取 getItemIdAtPosition() 以从 sqlite 数据库中获取记录的 id。当我单击任何项​​目上的 listView 时,它总是显示“null”而不显示 id。

这是代码:

       listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

               int id= ((int) listView.getItemIdAtPosition(i));

                //create our intent, as per usual
                Intent intent=new Intent(Tutorial10.this, Activity2.class);

                intent.putExtra(ID_EXTRA, id);
                startActivity(intent);
            }
        });

这个activity2.java

public class Activity2 extends Activity{

String passedVar=null;
private TextView passedView=null;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.act2);

    //Get our passed variable from our intent's EXTRAS
    passedVar=getIntent().getStringExtra(Tutorial10.ID_EXTRA);
    //find out text view
    passedView=(TextView)findViewById(R.id.passed);
    //display our passed variable!!!
    passedView.setText("YOU CLICKED ON="+passedVar);
}

}

【问题讨论】:

    标签: java android listview onitemclicklistener


    【解决方案1】:

    你应该改变这一行

      int id= ((int) listView.getItemIdAtPosition(i));
    

    有了这个

      long id = adapterView.getItemIdAtPosition(i);
    

    我希望这能解决您的问题。

    【讨论】:

    • 感谢您的回答。我用了你的解决方案。它显示没有错误。但是当我点击任何项目时,它会显示相同的结果“null”
    【解决方案2】:

    根据Android官方文档here,这个函数的用途并没有定义。好像在Adapter中调用getItemId(),getItemId()返回SQLite中Id的值。

    我猜你需要使用 SimpleCursorAdapter 来使用 SQLite。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-11
      • 1970-01-01
      • 2012-12-14
      • 1970-01-01
      • 1970-01-01
      • 2020-12-21
      • 1970-01-01
      相关资源
      最近更新 更多