回到意图previous活动 [英] back to previous activity with intent

查看:140
本文介绍了回到意图previous活动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个活动,当我$的第一个活动p $ PSS进入,它会打开第二个活动,它包含了一个的ListView ,当我选择一个项目的ListView ,它会得到它的价值,并带回第一个活动

I have two activity, and when I press enter on first activity, it will open second activity, it contains a ListView and when I choose an item from ListView, it will get its value and bring back to first activity

这是我已经试过;

的第二个活动

listPerasat.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {
     public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {
            NamaPrst = ((TextView) view.findViewById(R.id.txtListNamaPrst)).getText().toString();
            Intent i = new Intent();
            i.putExtra("NAMA_PERASAT", NamaPrst);
            finish();
        }
    });
}

这是第一个活动

edtText.setText(getIntent().getStringExtra("NAMA_PERASAT")); // inside onCreate

public void onActivityResult(int requestCode,int resultCode, Intent data)
{
    edtText.setText(getIntent().getStringExtra("NAMA_PERASAT"));
}

但没有发生。我怎样才能意图,并返回到previous活动?

but nothing happen. how can I get intent and back to previous activity?

推荐答案

您想调用 startActivityForResult()这一点。因此,在你的第一个活动

You want to call startActivityForResult() for this. So in your first Activity something like

Intent i = new Intent(FirstActivity.this, SecondActivity.class);
startActivityForResult(i, SOME_REQUEST_CODE); // you give SomeRequesSOME_REQUEST_CODE an int value

然后在 onItemClick()您需要调用的setResult()并发送回意图。这将调用 onActivityResult()在你的第一个活动

then in your onItemClick() you need to call setResult() and send back the Intent. This will call onActivityResult() in your first Activity

listPerasat.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {
 public void onItemClick(AdapterView<?> parent, View view,
        int position, long id) {
        NamaPrst = ((TextView) view.findViewById(R.id.txtListNamaPrst)).getText().toString();
        Intent i = new Intent();
        i.putExtra("NAMA_PERASAT", NamaPrst);
        setResult(RESULT_OK, i);
        finish();
    }
});
}

onActivityResult()在你的第一个活动,不叫 getIntent( )。这将尝试使用意图最初启动的第一个活动。相反,使用意图您传回

In onActivityResult() in your first Activity, don't call getIntent(). This will try to use the Intent that originally started your first Activity. Instead, use the Intent you passed back

@Override
public void onActivityResult(int requestCode,int resultCode, Intent data)
{
    edtText.setText(data.getStringExtra("NAMA_PERASAT"));
}

<一个href="http://stackoverflow.com/questions/20387659/startactivityforresult-with-three-activities/20404668#20404668">See这个答案另一个例子

这篇关于回到意图previous活动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆