【问题标题】:How to click a ListView item in Android如何在 Android 中单击 ListView 项目
【发布时间】:2010-08-10 15:53:21
【问题描述】:

我正在尝试在单击列表项时启动另一个活动。以下是我的代码:

public class AvoidForeclosure extends CustomListTitle {
/** Called when the activity is first created. */
private DbAdapter db;
private SimpleCursorAdapter clients;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ListView list = getListView();

    setContentView(R.layout.main);

    this.title.setText("Avoid Foreclosure");

    db = new DbAdapter(this);
    db.open();

    fillData();

    list.setOnItemClickListener(new OnItemClickListener() {

        public void onItemClick( AdapterView<?> parent, View view, int position, long id ) {

                int viewId = view.getId();

                TextView theView = (TextView) findViewById(viewId);

                String name = theView.getText().toString();

                Cursor clientData = db.getClientByName(name);

                Intent intent = new Intent();
                intent.setClass(view.getContext(), CurrentMarketValue.class);
                intent.putExtra("clientId", clientData.getInt(0));
                startActivity(intent);

        }

    });

}

private void fillData() {
    // Get all of the notes from the database and create the item list
    Cursor c = db.fetchAllClients();
    startManagingCursor(c);

    String[] from = new String[] { DbAdapter.KEY_NAME };

    int[] to = new int[] { R.id.text1 };

    // Now create an array adapter and set it to display using our row
    clients = new SimpleCursorAdapter(this, R.layout.clientsrow, c, from, to);
    setListAdapter(clients);


}

}

然而,当我点击它时,什么也没有发生。有什么想法吗?

【问题讨论】:

  • 我不确定,但你不是想调用 Intent.setAction() 吗?
  • CurrentMarketValue 代码是什么样的?
  • 我不确定 setAction()。除非我打电话给数据提供者,否则我从不使用它......至于 CurrentMarketValue - 它都是有效的,尽管几乎不存在。该程序甚至不会尝试启动它以使其失败。
  • setAction 在你指定你不想启动的类时是没用的,Android 不必在应用程序之间进行选择就知道哪个是最好的。
  • 我在想 CurrentMarketValue 的 onCreate 中可能缺少对 setContentView() 的调用,这可能是什么都没发生的原因,但我相信你的话它是有效的 :)跨度>

标签: android xml


【解决方案1】:

尝试切换这一行:

ListView list = getListView();

在这个之后:

setContentView(R.layout.main);

否则,您将获得 ListActivity 的默认布局的 ListView 的句柄,而不是 R.layout.main 的 listview(这是您真正想要的)。

【讨论】:

  • 感谢您的回答,但这并没有解决问题。就好像听者根本没有听到咔哒声。
  • 尝试重写 ListActivity 的 onListItemClicked() 方法,而不是手动设置新的 onClickListener。
猜你喜欢
  • 1970-01-01
  • 2014-10-14
  • 2018-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多