如何启动从不同类调用方法的活动?

时间:2014-11-07 09:47:27

标签: java android xml

我有一个活动,它将字符串数据类型转移到另一个活动,然后该活动使用该字符串并从另一个返回字符串的类调用方法。我想使用该方法在当前活动中显示字符串。

所以视觉上它(活动1) - 字符串 - > (活动2)。 Activity 2使用该字符串来调用另一个java类中的方法,该类返回一个类型字符串,我希望在屏幕上显示一些类型字符串以及几个按钮。

所以有些伪代码:

说不同java类中的方法是:

public static String getStringexample(String n) {
return "hello" + " " + n;
}

我的活动课程是:

public class manage extends Activity {
    protected void onCreate(bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContainerView(R.layout.activity_manage);

       Intent intent = getIntent();
       String example = intent.getExtras().getString("intentid");

我在此之后迷失了......不知道如何使用我从意图中获得的内容在java代码中将其显示在屏幕上。

2 个答案:

答案 0 :(得分:0)

您可以

开始活动
Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 1);

然后从第二个活动返回第一个活动

Intent returnIntent = new Intent();
returnIntent.putExtra("result",yourdata);
setResult(RESULT_OK,returnIntent);
finish();

在您的第一个活动中,您将通过使用以下代码获得结果

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

if (requestCode == 1) {
    if(resultCode == RESULT_OK){
        String result=data.getStringExtra("result");
    }
    if (resultCode == RESULT_CANCELED) {
        //Write your code if there's no result
    }
}
}

答案 1 :(得分:0)

活动之间的信息在' extras'中传递。这只是字符串键和值的集合。

双方都需要使用相同的密钥,因此请使用目标活动所需的密钥定义静态最终字符串。

然后使用密钥读取附加内容中的值并从那里开始:

public class DestinationActivity extends Activity {

    // let your callers know how to pass you the information you need
    public static final String EXTRA_N = "n";

    private TextView resultText;

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

        resultText = (TextView) findViewById(R.id.resultText);

        // get the information you was passed
        Intent intent = getIntent();
        String n = intent.getStringExtra(EXTRA_N);

        // do your transformation using the other class
        String example = DifferentClass.getStringexample(n);

        // display the transformed string
        resultText.setText(example);    
    }

    // ... 
}

调用活动发送如下信息:

Intent intent = new Intent(this, DestinationActivity.class);
intent.putExtra(DestinationActivity.EXTRA_N, "foo");
startActivity(intent);
祝你好运