任何人都可以帮助我解析单击另一个 Activity 时的 ListView 项目,最好是能够获取解析的 ID 并将其与一些 JSON 数据进行匹配的 Activity 。我正在开发一个 volley 库,并且肯定希望获取所单击的特定项目的相关数据。
// Called when the activity is first created.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinkedList<String> mLinked = new LinkedList<String>();
for (int i = 0; i < DRUGS.length; i++) {
mLinked.add(DRUGS[i]);
}
setListAdapter(new MyListAdaptor(this, mLinked));
ListView lv = getListView();
lv.setFastScrollEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), ((TextView) view).getText(), Toast.LENGTH_SHORT).show();
// Start new intent by passing value
// End intent
}
});
}
我需要在另一项 Activity 中看到我的值(value)
public class Activity2_view extends Activity {
//从 MainActivity 类收集值 TextView 电视 View ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_result);
tvView = (TextView) findViewById(R.id.tvView);
Intent intent = getIntent();
String ItemName = intent.getStringExtra("jsonId");
tvView.setText("Your drug name is: " + ItemName);
}
}
最佳答案
在适配器的 getView()
方法中,您可以设置一个标记来匹配需要链接的 JSON 数据的 ID。例如:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int jsonId; // Set the view's tag to the ID of the JSON data
// you want to link it to.
convertView.setTag(jsonId);
}
然后,在您的 OnItemClickListener
中:
ListView lv = getListView();
lv.setFastScrollEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), ((TextView) view).getText(), Toast.LENGTH_SHORT).show();
// Get the id from the view.
int jsonId = (int) view.getTag();
// Start new intent by passing value
Intent newActivityIntent = new Intent(YourActivity.this, YourNewActivity.class);
newActivityIntent.putExtra("jsonId", jsonId);
// Start it.
startActivity(newActivityIntent);
}
});
如果您在 getView()
方法中使用 ViewHolder
来进行优化,则 ViewHolder
将是您的 View 的标记。您需要向 ViewHolder
对象添加一个成员属性,您可以用它保存 id。
public class ViewHolder {
private int mJsonId;
private TextView mTextView;
public void setId(int id) {
mJsonId = id;
}
public int getJsonId() {
return mJsonId;
}
}
然后
ViewHolder viewHolder = (ViewHolder) view.getTag();
int jsonId = viewHolder.getJsonId();
希望这有帮助。
关于java - 将 ListView 项目 onclick 解析到另一个 Activity 并匹配 JSON 中的特定数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35259632/