java - 从单独的类添加到数组

标签 java android android-studio

我制作了一个用数组填充的 listView。我可以通过在名为 txtinputs 的文本框中输入数据,然后单击名为 btnAdds 的按钮,将数据添加到此 ListView ,当我将所有这些都放在一个类中时,这一切都很好.然而,我想要做的是在 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

最佳答案

在您的 ListDeadLinesActivity 中,当用户点击“+”按钮时您想要启动 AddDeadlineActivity 以获得结果。

您可以将这段代码放在那个“+”按钮的 onClick 中。

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

ADD_DEADLINE_REQUEST是请求码,可以声明一个static 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

关于java - 从单独的类添加到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35385093/

相关文章:

java - 使用 Java 将泰卢固语文本保存到 Oracle DB

java - Java RegEx 是否不区分大小写?

java - 阻止 FragmentPagerAdapter 立即创建其所有 fragment

java - 如何从多重映射中提取各个字符串值?

java - 使用 JUnit 测试方法

Android Studio - 通过 WiFi 使用 Apache POI 更新 Excel 数据库

windows - KMM 是否适用于 Android Studio - Windows 版本

安卓工作室 : disable design tab or change key binding to open it

android - 当我使用 putExtra() 时地理围栏事件出错

android - Android的Bitmap类的getPixels()的使用及使用方法