Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何启动从不同类调用方法的活动?_Java_Android_Xml - Fatal编程技术网

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

Java 如何启动从不同类调用方法的活动?,java,android,xml,Java,Android,Xml,我有一个活动,它将一个字符串数据类型传输到另一个活动,然后该活动使用该字符串并从另一个类调用一个方法,该类返回一个字符串。我想使用该方法在当前活动中显示字符串 所以从视觉上看,它是(活动1)——字符串-->(活动2)。活动2使用该字符串调用另一个java类中的方法,该类返回一个类型字符串,我希望该字符串与几个按钮一起显示在屏幕上 所以一些伪代码: 假设不同java类中的方法为: public static String getStringexample(String n) { return "h

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

所以从视觉上看,它是(活动1)——字符串-->(活动2)。活动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");
我的活动课是:

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代码在屏幕上显示它

您可以根据需要启动活动

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
    }
}
}

活动之间的信息在“附加”中传递。这只是字符串键和值的集合

双方都需要使用相同的键,因此使用目标活动期望的键定义静态最终字符串

然后使用键从附加值中读取值,然后从那里开始:

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);

祝你好运

不过我不想回到第一个活动。我希望第二个活动使用java方法显示字符串,但我还将向新活动添加一些其他内容。