从单独的类添加到数组

时间:2016-02-13 20:42:06

标签: java android android-studio

我创建了一个用数组填充的listView。我可以通过在名为txtinputs的文本框中输入数据来向此列表视图添加数据,然后单击一个名为btnAdds的按钮,当我将它全部放在一个类中时,这一切都正常。但是,我想要做的是在2个单独的屏幕上使用2个单独的类,txtinputsbtnAdds在一个单独的类而不是listView中。将数据输入txtinputs并选择btnAdds后,它会将该数据添加到单独的类的listView中。我想在名为ListDeadlines的类中使用listView,在名为AddDeadline的类中使用textBox和Button。 我目前将数据添加到listView中。

public ArrayList<String> arrayList;
public ArrayAdapter<String> adapter;
public EditText txtInput;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_list_deadlines);
    final ListView listView = (ListView)findViewById(R.id.listv);
    String[] items= {"HCI","ITM","Presentation"};
    arrayList=new ArrayList<>(Arrays.asList(items));
    adapter=new ArrayAdapter<String>(this,R.layout.list_item,R.id.txtitem,arrayList);
    listView.setAdapter(adapter);

    txtInput=(EditText)findViewById(R.id.txtinputs);
    Button btAdd=(Button)findViewById(R.id.btnAdds);
    btAdd.setOnClickListener(new View.OnClickListener(){
        @Override
    public void onClick(View v) {
            String newItem=txtInput.getText().toString();
            arrayList.add(newItem);
            adapter.notifyDataSetChanged();;


        }
    });

}

我试图在我的AddDeadline类中这样做,但是我点击了按钮

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_add_deadline);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
   final ListDeadlines lst= new ListDeadlines();
    lst.txtInput=(EditText)findViewById(R.id.txtinput);
    Button btAdd=(Button)findViewById(R.id.btnAdd);
    btAdd.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String newItem = lst.txtInput.getText().toString();
            lst.arrayList.add(newItem);
            lst.adapter.notifyDataSetChanged();

        }
    });
}

我希望实现类似enter image description here

的目标

1 个答案:

答案 0 :(得分:1)

当用户点击&#34; +&#34;时ListDeadLinesActivity您希望为结果启动AddDeadlineActivity按钮。

您可以将此代码放在&#34; +&#34;的onClick内。按钮。

Intent intent = new Intent(this, AddDeadlineActivity.class);
startActivityForResult(intent, ADD_DEADLINE_REQUEST);

ADD_DEADLINE_REQUEST是请求代码,您可以声明一个静态int。

@Override
protected void onCreate(Bundle savedInstanceState) {
    // ...

    btAdd.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent returnIntent = getIntent();
            returnIntent.putExtra("result", yourEditText.getText().toString());

            setResult(RESULT_OK,returnIntent);
            finish();
        }
    });
}

使用ListDeadLinesActivity覆盖onActivityResult方法,

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == ADD_DEADLINE_REQUEST){
        if (resultCode == RESULT_OK) {
            String item = data.getStringExtra("result");
            arrayList.add(item);
            adapter.notifyDataSetChanged();
        }
    }
}

Getting a Result from an Activity