我想從列表視圖中選擇的項目填充的字符串ArrayList中提取字符串。
數組列表的結果是:從ArrayList中提取字符串,它從列表視圖中獲取項目
{studentName=XXX,studentID=SF10001}
{studentName=YYYY,studentID=SF10002}
我只想得到studentID這是SF10001和SF10002。下面是我的代碼:
SparseBooleanArray checked = list.getCheckedItemPositions();
ArrayList<String> selectedItems = new ArrayList<String>();
for (int i = 0; i < checked.size(); i++) {
// Item position in adapter
int position = checked.keyAt(i);
// Add sport if it is checked i.e.) == TRUE!
if (checked.valueAt(i))
selectedItems.add(adapter.getItem(position));
}
String[] outputStrArr = new String[selectedItems.size()];
for (int i = 0; i < selectedItems.size(); i++) {
outputStrArr[i] = selectedItems.get(i);
}
Intent intent = new Intent(getApplicationContext(),
ResultActivity.class);
// Create a bundle object
Bundle b = new Bundle();
b.putStringArray("selectedItems", outputStrArr);
// Add the bundle to the intent.
intent.putExtras(b);
// start the ResultActivity
startActivity(intent);
}
這Activity.java
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_result);
Bundle b = getIntent().getExtras();
String[] resultArr = b.getStringArray("selectedItems");
ListView lv = (ListView) findViewById(R.id.outputList);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, resultArr);
lv.setAdapter(adapter);
}
@SoulRayder 所以,我創造了一個StudentData類的結果:
public class StudentData implements Serializable {
String studentName;
String studentID;
public String getStudentNameStudentData() {
return studentName;
}
public String getStudentID()
{
return studentID;
}
我更改代碼like tis:
SparseBooleanArray checked = list.getCheckedItemPositions();
ArrayList<StudentData> selectedItems = new ArrayList<StudentData>();
for (int i = 0; i < checked.size(); i++) {
// Item position in adapter
int position = checked.keyAt(i);
// Add sport if it is checked i.e.) == TRUE!
if (checked.valueAt(i))
selectedItems.add(adapter.getItem(position));
}
String[] outputStrArr = new String[selectedItems.size()];
for (int i = 0; i < selectedItems.size(); i++) {
outputStrArr[i] = selectedItems.get(i).getStudentID();
}
Intent intent = new Intent(getApplicationContext(),
ResultActivity.class);
// Create a bundle object
Bundle b = new Bundle();
b.putStringArray("selectedItems", outputStrArr);
// Add the bundle to the intent.
intent.putExtras(b);
// start the ResultActivity
startActivity(intent);
}
但這個代碼告訴我錯誤:
selectedItems.add(adapter.getItem(position));
這是ArrayList中不能應用到(java.lang.String中)。如何解決問題。 BTW,感謝您的即時迴應:d
您有一個字符串的Arraylist ...使它比需要的更難。製作學生課程。將其存儲在可以過濾的列表中 –