Android 如何从其他活动更新ListView

Android 如何从其他活动更新ListView,android,listview,Android,Listview,我是android新手,我在谷歌上搜索了很多,但找不到合适的答案。有人能帮我吗? 我有两个活动,活动1包含一个listview,活动2是一个编辑视图,我想做的是在单击listview上的项目后,它将转到活动2,在操作数据后,单击submit按钮(submit方法),它将返回listview,listview将显示更新的结果。 这是我的avtivity 1代码 public class I4ComponentActivity extends AppCompatActivity { private

我是android新手,我在谷歌上搜索了很多,但找不到合适的答案。有人能帮我吗? 我有两个活动,活动1包含一个listview,活动2是一个编辑视图,我想做的是在单击listview上的项目后,它将转到活动2,在操作数据后,单击submit按钮(submit方法),它将返回listview,listview将显示更新的结果。 这是我的avtivity 1代码

public class I4ComponentActivity extends AppCompatActivity {
private String quantity;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_component);

    final ArrayList<ComponentDetail> details = new ArrayList<ComponentDetail>();

    details.add(new ComponentDetail("Screen", "1"));
    details.add(new ComponentDetail("Camera", "2"));
    details.add(new ComponentDetail("Battery", "5"));
    details.add(new ComponentDetail("Change Port", "10"));
    details.add(new ComponentDetail("Speaker", "5"));
    details.add(new ComponentDetail("Power Key", "14"));
    details.add(new ComponentDetail("Screen Cable", "24"));

    ListView listView = (ListView) findViewById(R.id.component_list);
    DetailAdapter detailAdapter = new DetailAdapter(I4ComponentActivity.this, details);
    listView.setAdapter(detailAdapter);


    // Set a click listener to edit quantity when the list item is clicked on
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
            ComponentDetail cd = details.get(position);
            quantity = cd.getQuantity();
            Intent i = new Intent(I4ComponentActivity.this, Edit.class);
            //Create the bundle
            Bundle bundle = new Bundle();
            //Add your data to bundle
            bundle.putString("Item_quantity", quantity);
            //Add the bundle to the intent
            i.putExtras(bundle);
            //Fire that second activity
            startActivity(i);
        }
    });

}
}

带有
startActivityForResult(意图1)的StartActivity2

在Aty2
setResult(1,Intent)

然后在ActivityResult上重写
,您将获得返回的意图

在将项目添加到arraylist之后。使用
adapter.notifyDataSetChanged()以刷新listview


如果你不清楚的话。谷歌肯定有很多信息

看看
startActivityForResult
谢谢,你回答得这么快,startActivityForResult就是我需要使用的。谢谢,startActivityForResult正是我需要使用的,我需要提高我的搜索技能:)
public class Edit extends AppCompatActivity {
private int quantity;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_edit);


    //Get the bundle
    Bundle bundle = getIntent().getExtras();
    //Extract the data…
    String Item_quantity = bundle.getString("Item_quantity");

    TextView tv = (TextView) findViewById(R.id.quantity_edit);
    tv.setText(Item_quantity);
    quantity  = Integer.parseInt(Item_quantity);
}

public void decrease(View v){

    quantity --;
    displayQuantity();
}
public void increase(View v){

    quantity ++;
    displayQuantity();
}
public void submit(View v){
    Intent i = new Intent(Edit.this, I4ComponentActivity.class);
    Bundle bundle = new Bundle();
    bundle.putString("quantity_back", ""+quantity);
    i.putExtras(bundle);
    startActivity(i);
}

public void displayQuantity(){
    TextView tv = (TextView) findViewById(R.id.quantity_edit);
    tv.setText(""+quantity);
}
}