单击ListView项不起作用,我在每个ListView项中有三个textview和一个按钮

时间:2013-04-05 11:41:54

标签: android android-listview

我正在编写一个应用程序,我正在尝试打开活动并使用点击ListView中的项目 更新项目详细信息

问题:

每当我点击ListView中的项目,无法启动该活动,我也想知道如何更新项目详细信息......

我的每个ListView项目中都有三个文本视图和一个按钮

通过在CartActivity中使用以下代码,我无法打开ProductInformationActivity

    ListView mLstView1 = (ListView) findViewById(R.id.listView1);
    CartAdapter mViewCartAdpt = new CartAdapter(CartActivity.this);
mLstView1.setAdapter(mViewCartAdpt);
    mLstView1.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {

            Intent intent = new Intent(CartActivity.this, com.ProductInformationActivity.class);
            startActivity(intent);
        }
    });

CartAdapter.java:

  public View getView(final int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub

    HashMap<String, String> item = new HashMap<String, String>();
    item = Constants.mItem_Detail.get(position);

    // Setting all values in listview

    title.setText(item.get(com.ProductInformationActivity.KEY_TITLE));
    qty.setText(item.get(com.ProductInformationActivity.KEY_QTY));
    cost.setText(item.get(com.ProductInformationActivity.KEY_COST));
    total.setText(item.get(com.ProductInformationActivity.KEY_TOTAL));

    return vi;

}   

3 个答案:

答案 0 :(得分:0)

您是否已将活动添加到清单文件中? 您需要在应用程序标记中添加您的活动:

<activity android:name="com.erachnida.restaurant.versionoct.menu.ProductInformationActivity" />

答案 1 :(得分:0)

我认为您的问题是为整个ListView分配 OnItemClickListener ,然后为ImageView分配。关于ImageView,请看:

Intent mInViewCartRefresh = new Intent(activity, CartActivity.class);
activity.startActivity(mInViewCartRefresh);
activity.finish();

在这里你可能正在尝试刷新&#34; ListView但这是错误的。如果您想更新ListView,您需要的是使用

adapter.notifyDataSetChanged();

表示:&#34;我更改了数据源,我希望自己刷新。&#34;

所以我的建议是删除你的&#34;内部&#34;监听器,删除上面提到的代码片段,只留下ListView的监听器。

Intent intent = new Intent(CartActivity.this, ProductInformationActivity.class);
startActivity(intent);

然后,如果您点击ListView,从 int position 参数,您可以获得特定的收集项目,您可以随心所欲地使用它。在&#34;行动&#34;你需要调用刷新ListView的notifyDataSetChanged()。

答案 2 :(得分:0)

在我们的谈话中,您检查了这个link。所以,在itemClickListener中加上这一行:

Intent intent = new Intent(CartActivity.this, ProductInformationActivity.class);
                startActivity(intent);

如下所示:

public OnClickListener mOnTitleClickListener3 = new OnClickListener() {
            public void onClick(View v) {
                final int position = list_v
                        .getPositionForView((View) v.getParent());

                Log.d("you are click on Ratings","you are click on Ratings");
                Intent intent = new Intent(CartActivity.this, ProductInformationActivity.class);
                startActivity(intent);

            }
        };