public void ListDrwaer() {
String outPut = "";
List<Map<String, String>> dataList = new ArrayList<Map<String, String>>();
try {
JSONObject jsonResponse = new JSONObject(jsonResult);
JSONArray jsonMainNode = jsonResponse.optJSONArray("details");
for (int i = 0; i < jsonMainNode.length(); i++) {
JSONObject jsonChildNode = jsonMainNode.getJSONObject(i);
String desc = jsonChildNode.optString("saved_desc");
String saved_pw = jsonChildNode.optString("saved_pw");
String user_names = jsonChildNode.optString("user_names");
number = jsonChildNode.optInt("num_saved");
outPut =number+" User name: "+user_names+"\nPassword: "+saved_pw+"\nDescription: "+desc+"\n";
dataList.add(createDataList("users", outPut));
}
listView.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
String data = (String) ((TextView)view).getText();
Toast.makeText(getApplicationContext(), "Edit data at Id\n"+number, Toast.LENGTH_SHORT).show();
ConfirmBox(data, position);
return false;
}
});
} catch (Exception e) {
//Go to add activity if no data to display
startActivity(new Intent(getApplicationContext(), Add.class).putExtra("data", "no"));
}
SimpleAdapter simpleAdapter = new SimpleAdapter(this, dataList,
android.R.layout.simple_list_item_1,
new String[] { "users" }, new int[] { android.R.id.text1 });
listView.setAdapter(simpleAdapter);
}
private HashMap<String, String> createDataList(String name, String value) {
HashMap<String, String> dataNo = new HashMap<String, String>();
dataNo.put(name, value);
return dataNo;
}
现在我想要的是,当我长按一个项目时,我希望看到数据库中该项目的数量的祝酒词。
我有一个字段&#39; num_saved&#39;在mysql数据库中,只要用户将数据添加到数据库,该数据库就会自动递增。当我从数据库中检索数据时,每一行在字段“num_saved”中都有一个唯一值。
我想要的是当长按列表视图上的任何项目时,会看到唯一的号码num_saved
。
我已经编辑过并且还根据其他人的要求添加了适配器代码。
答案 0 :(得分:1)
你需要很多代码才能让它正常工作,正如我所说的那样正确。
原因:您正在将数据JSON解析为字符串,num_saved
将保存在number
变量中,该变量连接到otuput
outPut =number+" User name: "+user_names+"\nPassword: "+saved_pw+"\nDescription: "+desc+"\n";
顺便说一句,我不能仅仅通过String
说出那个ID号是什么。以下代码为您的问题快速修复,因为我发现您的代码需要更多优化和更正。
String data = (String) ((TextView)view).getText();
int num=Integer.parseInt(data.subString(0,1)); //<= Here is your number
Toast.makeText(getApplicationContext(), "Edit data at Id\n"+number, Toast.LENGTH_SHORT).show();
使用num
您可以执行操作,显示对话框并执行其他必要选项