如何使输入editText的值为全局变量/字符串?
问题描述:
我正在使用Android Studio。我希望用户输入editText的值作为全局变量存储,以便我可以在不同的活动中使用它(我试图制作一个篮子,并且用户输入的值是产品) 此处是我与EDITTEXT第一页代码调用,我想打一个全局变量)木:如何使输入editText的值为全局变量/字符串?
public class Letters extends AppCompatActivity {
int txtSize = 14;
EditText Wood;
Button bSize, bSize1, bSize2, bSize3, bBasket;
public int count = 5;
private LayoutInflater mInflater;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.content_letters);
Wood = (EditText) findViewById(R.id.Wood);
Button bSize = (Button) findViewById(R.id.bSize);
Button bSize1 = (Button) findViewById(R.id.bSize1);
Button bSize2 = (Button) findViewById(R.id.bSize2);
Button bSize3 = (Button) findViewById(R.id.bSize3);
Button bBasket = (Button) findViewById(R.id.bBasket);
final TextView price = (TextView) findViewById(R.id.price);
bSize.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Wood.setTextSize(40);
price.setText("£10");
}
});
bSize1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Wood.setTextSize(60);
price.setText("£20");
}
});
bSize2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Wood.setTextSize(100);
price.setText("£35");
}
});
bSize3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Wood.setTextSize(150);
price.setText("£50");
}
});
bBasket.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
EditText Wood = (EditText) findViewById(R.id.Wood);
String str = Wood.getText().toString();
if (str.length() == 0) {
Wood.requestFocus();
Wood.setError("FIELD CANNOT BE EMPTY");
} else if (str.length() >= 2) {
Wood.requestFocus();
Wood.setError("You can only type one letter!");
} else {
Intent intent2 = new Intent(Letters.this, Basket.class);
startActivity(intent2);
}
}
});
}
}
谢谢
答
方法1:添加额外给意向
Intent intent2 = new Intent(Letters.this, Basket.class);
intent2.putExtra("MY_INFO",str); // EDIT: putExtra() method
startActivity(intent2);
在Basket.java在其onCreate方法,
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.content_basket);
String strFromActivity=getIntent().getStringExtra("MY_INFO");
}
方法2:创建在Letters.java类的静态成员
在类信件,声明公共静态变量,
public static String editTextString="";
添加,在此行后
String str = Wood.getText().toString();
editTextString=str;
N你可以通过从任何一个类别调用Letters.editTextString
来访问这个变量。
谢谢你的回答。当我输入intent2.putExtras(“MY_INFO”,str);它提出不能解决方法'putExtras(java.lang.String,java.lang.String) – 09Emi
编辑:putExtra()是正确的方法签名,如果这解决了你的问题,请标记为已回答。 – Talha
谢谢,你知道如何打印字符串吗? – 09Emi