Java 获取所选项目\u id时遇到问题
从listView检索所选项目的id时遇到问题。 我所做的逻辑是:我在listView中显示了一个产品。当我单击编辑此产品时,它会将我发送到该产品的详细信息页面。在这里,产品名称、价格等将被检索到ID的ok execept。 谁能告诉我我做错了什么?代码如下: 类数据库处理程序 在onCreate上的产品详细信息页面中,我有:Java 获取所选项目\u id时遇到问题,java,android,sqlite,listview,Java,Android,Sqlite,Listview,从listView检索所选项目的id时遇到问题。 我所做的逻辑是:我在listView中显示了一个产品。当我单击编辑此产品时,它会将我发送到该产品的详细信息页面。在这里,产品名称、价格等将被检索到ID的ok execept。 谁能告诉我我做错了什么?代码如下: 类数据库处理程序 在onCreate上的产品详细信息页面中,我有: 我发现了问题,只需更换适配器中的一行即可: 从 到 您还需要再做一次编辑: Bundle extras = getIntent().getExtras(); if (ex
我发现了问题,只需更换适配器中的一行即可: 从 到 您还需要再做一次编辑:
Bundle extras = getIntent().getExtras();
if (extras != null) {
itemProductName.setText(extras.getString("product"));
itemPrice.setText(extras.getString("price"));
//Here is the one change
final String itemID = extras.getString("id");
saveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dbHandler.updateItem(itemID);
Toast.makeText(ItemDetail.this, itemProductName.getText().toString() + " was modified", Toast.LENGTH_SHORT).show();
startActivity(new Intent(ItemDetail.this, MainActivity.class));
}
}
});
}
就像你说的那样,这没关系。。我的代码也没问题,我只是用调试器发现了一个问题,就是我插入数据库的所有项都是用id 0插入的。我不知道为什么,因为我将列_id设置为整数主键AUTOINCREMENT,您的意思是说您的AUTOINCREMENT功能不起作用,它总是为每个记录插入零??
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View row = convertView;
final ViewHolder holder;
if (row == null || (row.getTag()) == null){
LayoutInflater inflater = LayoutInflater.from(activity);
row = inflater.inflate(layoutResource,null);
holder = new ViewHolder();
holder.hItemName = (TextView) row.findViewById(R.id.custom_row_productName);
holder.hItemPrice = (TextView) row.findViewById(R.id.custom_row_productPrice);
holder.hItemEdit = (ImageView) row.findViewById(R.id.custom_row_edit);
row.setTag(holder);
} else {
holder = (ViewHolder) row.getTag();
}
holder.hModel = getItem(position);
holder.hItemName.setText(holder.hModel.getItemName());
holder.hItemPrice.setText(String.valueOf(holder.hModel.getItemPrice()));
holder.hItemEdit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int itemID = holder.hModel.getItemId();
String itemName = holder.hModel.getItemName();
String itemPrice = String.valueOf(holder.hModel.getItemPrice());
Intent intent = new Intent(activity, ItemDetail.class);
intent.putExtra("id", itemID);
intent.putExtra("product", itemName);
intent.putExtra("price", itemPrice);
intent.putExtra("type", itemType);
startActivity(activity, intent,null);
}
});
Bundle extras = getIntent().getExtras();
if (extras != null) {
itemProductName.setText(extras.getString("product"));
itemPrice.setText(extras.getString("price"));
final int itemID = extras.getInt("id");
saveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dbHandler.updateItem(itemID);
Toast.makeText(ItemDetail.this, itemProductName.getText().toString() + " was modified", Toast.LENGTH_SHORT).show();
startActivity(new Intent(ItemDetail.this, MainActivity.class));
}
}
});
}
intent.putExtra("id", itemID);
intent.putExtra("id", ""+itemID);
Bundle extras = getIntent().getExtras();
if (extras != null) {
itemProductName.setText(extras.getString("product"));
itemPrice.setText(extras.getString("price"));
//Here is the one change
final String itemID = extras.getString("id");
saveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dbHandler.updateItem(itemID);
Toast.makeText(ItemDetail.this, itemProductName.getText().toString() + " was modified", Toast.LENGTH_SHORT).show();
startActivity(new Intent(ItemDetail.this, MainActivity.class));
}
}
});
}