我这里有一个愚蠢的问题。我也是新手,请尽可能显示一些代码。
Android Studio:如何将自定义文本附加到ListView / ListAdapter中?
示例:产品ID:1, 产品编号:2
我尝试使用以下行来执行此操作,但存在一些问题,因为我要在 onItemClick函数中引用 Config.TAG_ID 将其传递给下一个活动。
// employees.put(Config.TAG_ID," ID:" + id);
docker run -d nodebb
显示我的库存清单的功能
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(this, ViewStock.class);
HashMap<String, String> map = (HashMap) parent.getItemAtPosition(position);
String empId = map.get(Config.TAG_ID).toString();
intent.putExtra(Config.STOCK_ID, empId);
startActivity(intent);
}
答案 0 :(得分:1)
employees.put(Config.TAG_ID,“产品ID”+ id);
答案 1 :(得分:1)
public class ProductPogo {
String id;
String productName;
String price;
public String getId() {
return id;
}
public String setId(String id) {
this.id = id;
return id;
}
public String getProductName() {
return productName;
}
public String setProductName(String productName) {
this.productName = productName;
return productName;
}
public String getPrice() {
return price;
}
public String setPrice(String price) {
this.price = price;
return price;
}
}
//in your doInBackground
JSONObject productJsonObject = myPriceJsonArray.getJSONObject(p);
id =productPogo.setId("Product ID"+productJsonObject.getString("id"));
productName = productPogo.setProductName(productJsonObject.getString("productName"));
= productPogo.setPrice(productJsonObject.getString("price"));
yourArraylist.add(productPogo);
//InOnItemClickListner
Bundle bundle=new Bundle();
bundle.putString("product_id", yourArraylist.get(position).getId());
答案 2 :(得分:1)
您可以使用SimpleAdapter的setViewBinder()方法提供一个活页夹,将数据转换为要在视图中设置的文本字段。
按如下方式设置数据:
HashMap<String, String> employees = new HashMap<>();
employees.put(Config.TAG_ID, id);
employees.put(Config.TAG_NAME, name);
employees.put(Config.TAG_PRICE, price);
list.add(employees);
您的适配器如下:
SimpleAdapter adapter = new SimpleAdapter(
ViewAllStock.this, list, R.layout.list_item,
new String[]{ Config.TAG_ID, Config.TAG_NAME, Config.TAG_PRICE},
new int[]{ R.id.id, R.id.name, R.id.price});
adapter.setViewBinder(new SimpleAdapter.ViewBinder() {
@Override
public boolean setViewValue(View view, Object data, String textRepresentation) {
if (view.getId() == R.id.id) {
TextView v = (TextView) view;
v.setText("Product ID: " + textRepresentation);
return true;
} else if (view.getId() == R.id.name) {
TextView v = (TextView) view;
v.setText("Product Name: " + textRepresentation);
return true;
} else if (view.getId() == R.id.price) {
TextView v = (TextView) view;
v.setText("Price: ($)" + textRepresentation);
return true;
}
return false;
}
});
listView.setAdapter(adapter);
现在数据值保持纯净,可以在您的活动意图中不加改变地传递。