动态文字检视MaxLength

时间:2019-01-24 09:14:27

标签: java android

我正在尝试由用户在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 部分出现问题。

感谢您抽出宝贵的时间来提供帮助。

3 个答案:

答案 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");