テストプロジェクトを作成しました。そのプロジェクトでボタンをクリックしたときにユーザーが追加できるリストビューを作成しようとしています。このボタンは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にあると確信しているので、すべてを通過する必要はありません。宿題を返す項目という別のクラスがあります。ありがとうございました!書かれた
おかげで、私はこれをチェックし、それが動作するかどうかを確認します –
ねえ、私はそれをあなたに感謝しました。乾杯! –
それを聞いてうれしい、~~あなたを歓迎しています –