我創建了一個測試項目,並且在該項目中,我嘗試創建一個用戶可以在單擊按鈕時添加的列表視圖。該按鈕用editText和另一個按鈕打開一個新的活動,返回到listview活動,並且應該添加一個項目。它第一次工作,但是當我添加另一個項目時,它取代了舊項目。我現在搜索了一段時間,其他所有答案似乎都沒有幫助我。提前致謝。ListView替換第一個對象而不是添加一個新對象
public class MainActivity extends Activity {
ListView simpleList;
String input;
ArrayList<Item> listItems =new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
simpleList = (ListView) findViewById(R.id.listView);
addData();
MyAdapter myAdapter=new MyAdapter(this,R.layout.row, listItems);
simpleList.setAdapter(myAdapter);
}
public void addData(){
Bundle extras = getIntent().getExtras();
if (extras != null) {
input = extras.getString("Homework");
listItems.add(new Item(input, input, input));
}
}
public void toInput(View view){
Intent intent = new Intent(this, inputScreen.class);
startActivity(intent);
}}
這是我的主要活動,適配器是在這個類中製作的自定義適配器。
public class MyAdapter extends ArrayAdapter<Item> {
ArrayList<Item> listItems = new ArrayList<>();
public MyAdapter(Context context, int textViewResourceId, ArrayList<Item> objects){
super(context, textViewResourceId, objects);
listItems = objects;
}
public int getCount(){
return super.getCount();
}
public View getView(int position, View convertView, ViewGroup parent){
View v = convertView;
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.row, null);
TextView textView = (TextView) v.findViewById(R.id.homeworkDisplay);
TextView textView2 = (TextView) v.findViewById(R.id.dueDisplay);
TextView textView3 = (TextView) v.findViewById(R.id.classDisplay);
textView.setText(listItems.get(position).getHomework());
textView2.setText(listItems.get(position).getDate());
textView3.setText(listItems.get(position).getClasses());
return v;
}}
被添加到列表視圖是從另一個活動是得到它從EDITTEXT發送的字符串,這裏是
類public class inputScreen extends Activity{
EditText userInput;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.input_screen);
userInput = (EditText) findViewById(R.id.editText);
}
public void sendInfo(View view){
Intent goingBack = new Intent(this,MainActivity.class);
goingBack.putExtra("Homework", userInput.getText().toString());
startActivity(goingBack);
}}
我知道有很多的代碼在那裏,你不不需要經歷這一切,因爲我確定問題出在MainActivity上。我有另一個類稱爲項目返回作業。謝謝!
謝謝老兄,我會檢查一下,看看它是否有效 –
嘿,我明白了,謝謝你。乾杯兄弟! –
很高興聽到這個消息,~~歡迎您 –