我有一个活动,它将字符串数据类型转移到另一个活动,然后该活动使用该字符串并从另一个返回字符串的类调用方法。我想使用该方法在当前活动中显示字符串。
所以视觉上它(活动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代码中将其显示在屏幕上。
答案 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);
祝你好运