如何将用户输入(从TextView)分配到变量中,然后在另一个类中调用该变量?
在我的MainActivity中,我有以下用户输入的内容:
Button confirm;
EditText inputField;
String typedChar;
char[] cars = typedChar.toCharArray();
@SuppressLint("WrongViewCast")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
confirm = (Button)findViewById(R.id.btConfirmInput);
inputField = (EditText) findViewById(R.id.etInputChars);
confirm.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
typedChar = inputField.getText().toString();
}
}
);
我正在尝试存储输入并将其转换为char
String typedChar;
char[] cars = typedChar.toCharArray();
现在我想在以下方法中使用cars
打印到自定义视图:
private void drawText() {
for (int i = 0; i < txtPosByColumn.length; i++) {
canvas.drawText("" + cars[RANDOM.nextInt(cars.length)], i * fontSize, txtPosByColumn[i] * fontSize, paintTxt);
if (txtPosByColumn[i] * fontSize > height && Math.random() > 0.975) {
txtPosByColumn[i] = 0;
}
txtPosByColumn[i]++;
}
然而,我能够将硬编码值分配给cars
,如下所示:
private char[] chars = "010101".toCharArray();
但我希望它来自用户输入
任何人请友好的建议,指导。我知道我做错了但却想不出来......
PS:Noob here
答案 0 :(得分:1)
你把变量放在这样的Intent中:
confirm.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
typedChar = inputField.getText().toString();
char[] chars = typedChar.toCharArray();
Intent intent = new Intent(MyCurrentActivity.this, MySecondActivity.class);
intent.putExtra("somethingWithARelevantName", chars);
startActivity(intent);
}
}
);
你可以在第二次活动中得到它:
Intent intent = getIntent();
char[] chars = intent.getExtras().getCharArray("somethingWithARelevantName");
编辑:如果想要将您的变量放在不是活动的类中,可以在构造函数中传递它:
class MyClass{
char[] chars;
MyClass(char[] chars){
this.chars = chars;
}
}
答案 1 :(得分:0)
您应该指定其他类的类型。 如果它是一个简单的Java类,您可以将它作为字段传递给drawText(char []数组); 但是,如果您正在处理以下活动: 在您的第一个活动中,在启动其他活动之前,使用额外意图在活动之间发送数据,如之前的答案所示。