Android 正在从其他活动的列表中删除项目

Android 正在从其他活动的列表中删除项目,android,listview,button,Android,Listview,Button,如何从另一个活动的按钮中删除列表活动中的项目,问题是 我有这个列表活动: public class ListaEventos extends ListActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override protected void onResume

如何从另一个活动的按钮中删除
列表活动中的项目,问题是

我有这个
列表活动

public class ListaEventos extends ListActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    protected void onResume() {
        super.onRestart();
        republicar();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.lista_eventos, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.criar_evento:
                Intent criar = new Intent(this, CriarEvento.class);
                startActivity(criar);
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

    public void republicar() {
        List<DadosEvento> eventos = MySingleton.getInstance().getEventos();
        setListAdapter(new ArrayAdapter<DadosEvento>(this, android.R.layout.simple_list_item_1, eventos));
    }

    @Override
    public void onListItemClick(ListView listView, View view, int position, long id) {

        DadosEvento clickNumber = MySingleton.getInstance().getEventos().get(position);

        Intent intent = new Intent(this, ExibirEvento.class);
        Bundle exibirEvento = new Bundle();
        exibirEvento.putString("exibirNome", clickNumber.getNome());
        exibirEvento.putString("exibirData", clickNumber.getData());
        exibirEvento.putString("exibirEnd", clickNumber.getEndereco());
        exibirEvento.putString("exibirTel", clickNumber.getTel());
        intent.putExtras(exibirEvento);
        startActivity(intent);
    }
}

现在,在ExibirEvento上,它向我显示了关于派对的信息,我需要一个按钮将该项目从列表中删除。

好的,您可以遵循几个场景

  • 使用
    startActivityForResult
    而不是
    startActivity
    ,然后覆盖
    onActivityResult
    方法,捕获一个正确的
    requestCode
    result
    (例如
    result\u OK
    )并删除当前项和
    notifyDataChanged
    适配器

  • 使用singelton类,创建新实例,设置值,然后从
    ExibirEvento

  • 使用数据库,利用
    ContentProvider
    Loader
    ,只将条目的
    ID
    传递给
    ExibirEvento


  • 我认为3选项是最好的选择。

    在我的代码中,我使用单例,但是什么值以及如何获得?您在
    意图中输入的值
    public class ExibirEvento extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_exibir_evento);
    
            Intent intent = getIntent();
            Bundle exibirEvento = intent.getExtras();
    
            String exibirNome = exibirEvento.getString("exibirNome");
            String exibirData = exibirEvento.getString("exibirData");
            String exibirEnd = exibirEvento.getString("exibirEnd");
            String exibirTel = exibirEvento.getString("exibirTel");
    
            TextView exibir_nome = (TextView) findViewById(R.id.exibirevento_edittext_nome);
            exibir_nome.setText(exibirNome);
    
            TextView exibir_data = (TextView) findViewById(R.id.exibirevento_edittext_data);
            exibir_data.setText(exibirData);
    
            TextView exibir_end = (TextView) findViewById(R.id.exibirevento_edittext_end);
            exibir_end.setText(exibirEnd);
    
            TextView exibir_tel = (TextView) findViewById(R.id.exibirevento_edittext_tel);
            exibir_tel.setText(exibirTel);
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.exibir_evento, menu);
            return true;
        }
    
        public void sairExibicao(View v) {
            finish();
        }
    }