Android startActivityForResult

时间:2013-12-17 21:20:38

标签: android listview

我正在使用startActivityForResult,但我没有数据,为什么?用这个代码我在午餐活动

conto = (Button) findViewById(R.id.btn_new_conto);
conto.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View arg0) {
        Intent intent=new Intent(Mov.this,onto.class);
        startActivityForResult(intent, 2);

并使用此代码传递值:

  lista.setOnItemClickListener(new OnItemClickListener(){
            @Override
            public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
                Dettaglio d = dettagli.get(position);
             Intent intent=new Intent();
                 intent.putExtra("conto", d.conto);
                 setResult(2,intent);
finish();

使用此代码我得到值:

protected void onActivityResult1(int requestCode, int resultCode, Intent data){
          super.onActivityResult(requestCode, resultCode, data);
                          if(requestCode==2){
               if(null!=data) { 
                  conto.setText(data.getStringExtra("conto"));

2 个答案:

答案 0 :(得分:0)

ActivityForResult是异步调用。 您应该从初始活动中覆盖onActivityResult(),在那里您将获得第二个活动的结果。

在第二个活动中,您应该调用setResult()方法,继续finish()

答案 1 :(得分:-1)

在已启动的活动中,您只需致电setResult(int),然后finish()。在调用活动中,您可以在onActivityResult(int, int, Intent)

中捕获结果

developers guide

中详细了解相关信息