我最近开始学习Android开发(Android Studio)并且非常喜欢它。我自己试图解决这个问题,但我已经到了需要帮助的地步。
我正在编写本教程:http://www.vogella.com/tutorials/AndroidIntent/article.html#exercise-starting-activities
我怀疑在第6.6或6.7步出错了。
我有一个主要活动和一个子活动,我的问题是我发送到子活动的i.putExtra数据没有显示在带有ID的textview中:displayintentextra
这是我的代码:
主要活动:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onClick(View view) {
EditText text = (EditText) findViewById(R.id.inputforintent);
String value = text.getText().toString();
Intent i = new Intent(this, ResultActivity.class);
startActivity(i);
i.putExtra("Value1", "Check it");
}
}
子活动:
public class ResultActivity extends Activity {
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.activity_result);
Bundle extras = getIntent().getExtras();
if (extras == null) {
return;
}
String value1 = extras.getString("Value1");
if (value1 != null) {
TextView displayintentextra = (TextView) findViewById(R.id.displayintentextra);
displayintentextra.setText("Value1"); }
}
}
子活动textview:
<TextView
android:id="@+id/displayintentextra"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
注意:我不确定TextView是否会显示&#34; Value1&#34;或&#34;检查&#34;如果这个代码是固定的,但它应该显示&#34;检查它&#34;。现在,当我运行应用程序时,TextView为空。
非常感谢您的帮助。
提前致谢, 亚历
答案 0 :(得分:1)
在MainActivity中,将i.putExtra()放在startActivity方法之前。目前没有将附加组件传递给ResultActivity,因为它在设置额外字符串之前被调用..
Intent i = new Intent(this, ResultActivity.class);
i.putExtra("Value1", "Check it");
startActivity(i);
答案 1 :(得分:1)
在MainActivity中,将i.putExtra("Value1", "Check it");
放在第startActivity(i);
行之前。
Intent i = new Intent(this, ResultActivity.class);
i.putExtra("Value1", "Check it");
startActivity(i);
在ResultActivity中,将行displayintentextra.setText("Value1");
替换为displayintentextra.setText(value1);
。
if (value1 != null) {
TextView displayintentextra = (TextView) findViewById(R.id.displayintentextra);
displayintentextra.setText(value1); }