如何在列表视图中获取所选项目的值 - Android
How to get value(s) of selected Item in listview - Android
我是 Android (Java) 的新手,我想获取用户从我的自定义 ListView 中选择的一个或多个项目的值,下面是我尝试的示例代码检索数据
ContactsListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
// String str= ContactsListView.getSelectedItem();
//String selectedFromList = (ContactsListView.getItemAtPosition(position).toString());
String val = parent.getAdapter().getItem(position).toString();
Log.i("Item", "Selected: " + val);
}
});
但这就是我得到的
02-04 18:16:31.773 10255-10255/com.app.com.sms I/Item: Selected:
com.app.com.smsapp.ThreeStrings@42829718 02-04 18:16:33.323
10255-10255/com.app.com.sms I/Item: Selected:
com.app.com.smsapp.ThreeStrings@428297c0 02-04 18:16:34.463
10255-10255/com.app.com.sms I/Item: Selected:
com.app.com.smsapp.ThreeStrings@42829718
这是我的适配器
public class ThreeHorizontalTextViewsAdapter extends
ArrayAdapter<ThreeStrings> {
private int layoutResource;
public ThreeHorizontalTextViewsAdapter(Context context, int layoutResource, List<ThreeStrings> threeStringsList) {
super(context, layoutResource, threeStringsList);
this.layoutResource = layoutResource;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
LayoutInflater layoutInflater = LayoutInflater.from(getContext());
view = layoutInflater.inflate(layoutResource, null);
}
ThreeStrings threeStrings = getItem(position);
if (threeStrings != null) {
TextView leftTextView = (TextView) view.findViewById(R.id.leftTextView);
TextView rightTextView = (TextView) view.findViewById(R.id.rightTextView);
TextView centreTextView = (TextView) view.findViewById(R.id.centreTextView);
TextView text_from = (TextView) view.findViewById(R.id.text_from);
if (leftTextView != null) {
leftTextView.setText(threeStrings.getLeft().toUpperCase());
}
if (rightTextView != null) {
rightTextView.setText(threeStrings.getRight());
}
if (centreTextView != null) {
centreTextView.setText(threeStrings.getCentre());
}
if (text_from != null) {
text_from.setText(threeStrings.getBottom());
}
}
return view;
} }
public class ThreeStrings {
private String left;
private String right;
private String centre;
private String bottom;
public ThreeStrings(String left, String right, String centre, String bottom) {
this.left = left;
this.right = right;
this.centre = centre;
this.bottom = bottom;
}
public String getLeft() {
return left;
}
public String getCentre() {
return centre;
}
public String getRight() {
return right;
}
public String getBottom() {return bottom;}
}
在 listView 中,我将 centre 作为选定值。我如何获得所选项目的价值/中心?
String val = [yourList].get(position).getCentre();
您可以执行以下操作:-
ContactsListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
ThreeStrings threeStrings = (ThreeStrings)ContactsListView.getItemAtPosition(position);
Log.i("Item", "Selected: " + threeStrings.getCentre());
}
});
我是 Android (Java) 的新手,我想获取用户从我的自定义 ListView 中选择的一个或多个项目的值,下面是我尝试的示例代码检索数据
ContactsListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
// String str= ContactsListView.getSelectedItem();
//String selectedFromList = (ContactsListView.getItemAtPosition(position).toString());
String val = parent.getAdapter().getItem(position).toString();
Log.i("Item", "Selected: " + val);
}
});
但这就是我得到的
02-04 18:16:31.773 10255-10255/com.app.com.sms I/Item: Selected: com.app.com.smsapp.ThreeStrings@42829718 02-04 18:16:33.323 10255-10255/com.app.com.sms I/Item: Selected: com.app.com.smsapp.ThreeStrings@428297c0 02-04 18:16:34.463 10255-10255/com.app.com.sms I/Item: Selected: com.app.com.smsapp.ThreeStrings@42829718
这是我的适配器
public class ThreeHorizontalTextViewsAdapter extends ArrayAdapter<ThreeStrings> { private int layoutResource; public ThreeHorizontalTextViewsAdapter(Context context, int layoutResource, List<ThreeStrings> threeStringsList) { super(context, layoutResource, threeStringsList); this.layoutResource = layoutResource; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = convertView; if (view == null) { LayoutInflater layoutInflater = LayoutInflater.from(getContext()); view = layoutInflater.inflate(layoutResource, null); } ThreeStrings threeStrings = getItem(position); if (threeStrings != null) { TextView leftTextView = (TextView) view.findViewById(R.id.leftTextView); TextView rightTextView = (TextView) view.findViewById(R.id.rightTextView); TextView centreTextView = (TextView) view.findViewById(R.id.centreTextView); TextView text_from = (TextView) view.findViewById(R.id.text_from); if (leftTextView != null) { leftTextView.setText(threeStrings.getLeft().toUpperCase()); } if (rightTextView != null) { rightTextView.setText(threeStrings.getRight()); } if (centreTextView != null) { centreTextView.setText(threeStrings.getCentre()); } if (text_from != null) { text_from.setText(threeStrings.getBottom()); } } return view; } }
public class ThreeStrings {
private String left;
private String right;
private String centre;
private String bottom;
public ThreeStrings(String left, String right, String centre, String bottom) {
this.left = left;
this.right = right;
this.centre = centre;
this.bottom = bottom;
}
public String getLeft() {
return left;
}
public String getCentre() {
return centre;
}
public String getRight() {
return right;
}
public String getBottom() {return bottom;}
}
在 listView 中,我将 centre 作为选定值。我如何获得所选项目的价值/中心?
String val = [yourList].get(position).getCentre();
您可以执行以下操作:-
ContactsListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
ThreeStrings threeStrings = (ThreeStrings)ContactsListView.getItemAtPosition(position);
Log.i("Item", "Selected: " + threeStrings.getCentre());
}
});