我正在尝试由用户在TextView
中获取值。然后,我需要在第二个Activity中使用该值,将maxLength
字段的TextView
设置为该值。
我遇到的Intent
问题。我无法成功将Integer
解析为第二个活动。我尝试了多种资源,但仍然无法正常工作。有人可以帮忙吗?
第一个活动的代码是:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText bcLength = findViewById(R.id.bcLength);
Button next = findViewById(R.id.btnNext);
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent myIntent = new Intent(view.getContext(), Activity2.class);
String length = bcLength.getText().toString();
Integer.parseInt(length);
myIntent.putExtra(length, Integer.parseInt(length.toString()));
startActivityForResult(myIntent, 0);
}
});
第二项活动是:
Intent myIntent = getIntent();
int length = getIntent().getExtras().getInt(length);
/* String length = myIntent.getIntExtra(); */
InputFilter[] filterArray = new InputFilter[1];
filterArray[0] = new InputFilter.LengthFilter(Integer.parseInt(length));
length.setFilters(filterArray);
问题是我不了解我是否需要将输入的字符串值转换为Int,然后在 getIntExtra()方法中调用Int,还是应该将其称为String?
这会导致我的 setFilters 部分出现问题。
感谢您抽出宝贵的时间来提供帮助。
答案 0 :(得分:2)
如果要将值传递给另一个活动,则发送活动中的代码将保持与以下相同。
Intent myIntent = new Intent(A.this, B.class);
myIntent.putExtra("variableName", intValue); //you can use int or string here
startActivity(myIntent);
根据您传递的值的类型,如果您传递了int并想检索它,则需要使用 getIntExtra()
Intent mIntent = getIntent();
int intValue = mIntent.getIntExtra("variableName", 0);
如果要获取在源活动中传递的字符串值,则需要使用 getExtras()。getString()
Intent mIntent= getIntent();
String strValue = mIntent.getExtras().getString("variableName");
答案 1 :(得分:0)
如果您试图在textview中获取字符串的长度,则在您的第一个活动中看不到该代码。
/* Do this only if you want to inject a Supplier somewhere. */
@Bean
public Supplier supplier(){
/* define here how a default Supplier should look like */
return new Supplier();
}
将字符串转换为等效值的整数。在无法将其转换为int的字符串上使用它会导致运行时异常
您应该执行的操作是调用Integer.parseInt(length);
,该字符串将为您提供该字符串的长度。
然后您可以将其传递给第二个活动
此外,您还通过以下方式增加了意图
length.toString();
并获得
myIntent.putExtra("referenceName", ValueToBePassed);
传递的值可以是任何类型
因此,传递字符串可以让您获得一个int类型
答案 2 :(得分:0)
在第一次活动中使用此代码
Intent myIntent = new Intent(view.getContext(), Activity2.class);
String length = bcLength.getText().toString().length();
myIntent.putExtra("length",length)
现在在第二个活动中使用此代码`
String strValue =getIntent().getExtras().getString("length");