首先感谢阅读和花时间解决这个问题。
我有一些Acivities,每个都包含一个按钮,可以进入下一个。最后一个包含一个TextView,我希望append()
每个活动完成其工作的文本。我使用静态来访问TextView,但因为包含textView的活动是最后一个运行我得到NullException。
我会感激任何建议。
谢谢;)
最后一项活动:
public class FinishActivity extends Activity {
static TextView textViewResult;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.finish_layout);
textViewResult = (TextView)findViewById(R.id.textViewResult);
}
}
答案 0 :(得分:1)
使用显示here的SharedPreferences在每个活动后保存附加的字符串,并将其用作最后一个textview.setText(pref.getString("key",null));
如果您不明白如何创建/使用SharedPreferences,请发表评论并感到很乐意提供帮助
更新: 在每个活动中声明 -
SharedPreferences pref;
SharedPreferences.Editor editor;
然后在onCreate() -
里面pref = getSharedPreferences("name", MODE_PRIVATE);
editor = pref.edit();
您可以使用上面的任何字符串而不是“名称”。它是您的SharedPreference文件的名称。
现在保存字符串 -
editor.putString("myString", "some string");
editor.apply();
获取字符串 -
String s=pref.getString("MyString",null);
从第二个活动开始的getString - >使用'+'追加 - >使用editor.put再次保存它。应该这样做:) google SharedPreferences获取更多信息
答案 1 :(得分:0)
您可以将文字放在用于开始活动的意图中。
Intent i = new Intent(FirstScreen.this, SecondScreen.class);
String strName = "abc";
i.putExtra("STRING_I_NEED", strName);
然后在下一个活动中,您可以通过
获取文本Bundle extras = getIntent().getExtras();
if(extras == null) {
newString= null;
} else {
newString= extras.getString("STRING_I_NEED");
}
答案 2 :(得分:0)
您可以使用像
这样的intent.putExtra()方法 Intent intent = new Intent(this, your_next_activity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("src", textViewResult.getText().toString() );
startActivity(intent);
然后在你的oncreate()方法的下一个活动中使用下面的方法来检索
Intent i = getIntent();
String s = i.getExtras().getString("src");
答案 3 :(得分:0)
在您的情况下,最简单的方法是:使用bin/hadoop jar $HADOOP_HOME/Hadoop-WordCount/wordcount.jar WordCount input output
:
Application
修改AndroidManifest.xml的//create class App that extends android.app.Application
public class App extends Application {
public String yourTextToShow = "";
@Override
public void onCreate() {
super.onCreate();
}
}
标记,使其具有属性android:name =" your.package.name.App"。
从那时起,只要您想要从任何<application>
更改/访问您的文字,只需致电:Activity
。在您的情况下,您需要重置活动((App)getApplication()).yourTextToShow = "textyouwant";
中的TextView
。
P / s:不要尝试使用静态onResume
。这是最糟糕的做法。它会为你的应用程序造成内存泄漏。