0

我正在编写一个应用程序,我试图在其中打开一个活动并使用点击 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;

}   
4

3 回答 3

0

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

<activity android:name="com.erachnida.restaurant.versionoct.menu.ProductInformationActivity" />
于 2013-04-05T11:50:43.413 回答
0

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

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

在这里,您可能正在尝试“刷新” ListView,但这是错误的。如果您想更新您的 ListView 所有您需要使用

adapter.notifyDataSetChanged();

这表明:“我更改了数据源,我希望您自己刷新。”

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

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

然后,如果您单击 ListView,则可以从int 位置参数获取特定项目以进行收集,并且可以对它做任何您想做的事情。在“操作”之后,您需要调用 notifyDataSetChanged() 来刷新您的 ListView。

于 2013-04-05T11:54:16.090 回答
0

根据我们的谈话,您已检查此链接。所以,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);

            }
        };
于 2013-04-05T12:04:10.667 回答