我有一个类,其中从输入中获取字符串。我想在第二个类中使用输入的值。
public class Incontrare extends ActionBarActivity {
public static String nome1=null;
public String variabileNome;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_incontrare);
Button button1 = (Button) findViewById(R.id.button1Nome);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
alertDia(); //takes the input from variabileNome
nome1 = variabileNome;
TextView textv1 = (TextView) findViewById(R.id.textView1);
textv1.setText(nome1);
}
});
public static String getNome1() {return nome1;}
}
}
第二节课:
public class IncontrarePersona1 extends ActionBarActivity {
String nome1=Incontrare.getNome1();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_incontrare_persona1);
b1=(Button)findViewById(R.id.play);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String toPrint = "There is " + nome1;
Toast.makeText(getApplicationContext(), toPrint, Toast.LENGTH_SHORT).show();
}
});
}
我也用这种方式尝试了第二节课:
public class IncontrarePersona1 extends ActionBarActivity {
String nome1=Incontrare.getNome1();
public static String no1;
b1=(Button)findViewById(R.id.play);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Incontrare no1= new Incontrare();
String n1= no1.nome1;
String toPrint = "There is " + nome1;
Toast.makeText(getApplicationContext(), toPrint, Toast.LENGTH_SHORT).show();
}
});
}
错误在哪里?为什么我总是空? 任何帮助表示赞赏。谢谢:))
答案 0 :(得分:2)
如果您从活动跳到另一个活动,请使用Bundle。
捆绑示例 - 设定值
Intent i = new Intent();
i.setClass(this, IncontrarePersona1.class);
i.putExtra("text", "some text");
startActivity(i);
获取价值:
Bundle extras = getIntent().getExtras();
if (extras != null)
{
String data= extras.getString("text");
//data is your param
}
否则请使用带有静态变量的静态类,如Will McG所说。
答案 1 :(得分:1)
我认为问题在于,当第二个Activity
成为焦点时,之前活动中的数据将丢失。
创建一个单独的类来保存Activity
可以访问的静态变量。
编辑:
如果我担心整个应用程序失去焦点,我用于传递数据的另一种方法是SharedPreferences
。