【问题标题】:how to give onClick event to listview where the data is dynamically generated如何将onClick事件提供给动态生成数据的listview
【发布时间】:2017-03-22 21:59:12
【问题描述】:

我是一名安卓初学者。 我正在尝试为列表视图中的数据提供 onClick 事件。数据从 mysql 数据库中获取并存储在 sqlite 中,并显示在屏幕上。我不知道如何为该数据提供 onClick 事件。请给我建议。

提前致谢。

我正在尝试开发一个时间表应用程序。当用户点击一个按钮时,他当天必须参加的课程必须显示在列表视图中。当他点击课程时,他必须获得该课程的详细信息。

周二公开课扩展 ListActivity {

private ArrayList<String> results = new ArrayList<String>();
private String DATABASE_TABLE = SQLiteDB.DATABASE_TABLE;
private SQLiteDatabase newDB;
private static final String KEY_PERIODNO = "periodno";
private static final String KEY_PERIODNAME = "periodname";

private String id;
TextView periodno,periodname;


SQLiteDB sqlite_obj;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tuesday);

    sqlite_obj = new SQLiteDB(tuesday.this);
    Intent previous = getIntent();
    id = previous.getStringExtra("id");
    Log.i("id: ", " " + id);

    select_seqlite();


}


private void select_seqlite() {

    sqlite_obj.open();

    Cursor c = sqlite_obj.gettuesdayData();
    if (c.moveToFirst())
    {
        do {
            DisplayContact(c);
        } while (c.moveToNext());
    }

    sqlite_obj.close();
}




private void DisplayContact(Cursor c) {


    Toast.makeText(getBaseContext(),
            "\n" +"periodno: " + c.getString(2)+ "\n"+"periodname: " + c.getString(3)+ "\n", Toast.LENGTH_LONG).show();

    TextView tview = new TextView(this);
    tview.setText("      "  + c.getString(2)  +
            " "+ c.getString(3));
    getListView().addHeaderView(tview);

    setListAdapter(new ArrayAdapter<String>(this,
            android.R.layout.activity_list_item,results));

    getListView().setTextFilterEnabled(true);}}

【问题讨论】:

标签: android listview


【解决方案1】:

在您定义列表视图的活动中

写在下面的代码

listview.setOnItemClickListener(new OnItemClickListener(){   
    @Override
    public void onItemClick(AdapterView<?>adapter,View v, int position){
        ItemClicked item = adapter.getItemAtPosition(position);

        Intent intent = new Intent(Activity.this,destinationActivity.class);
        //based on item add info to intent
        startActivity(intent);
    }
});

在你的适配器的 getItem 中你写

public ItemClicked getItem(int position){
    return items.get(position);
}

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-22
    • 2018-04-22
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多