我正在编写一个应用程序,我正在尝试打开活动并使用点击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;
}
答案 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);
}
};