Невозможно использовать любую переменную в качестве аргумента для .setHint () - PullRequest
0 голосов
/ 04 февраля 2012
// This is in the class which calls the next activity with an intent:
Bundle bundle = new Bundle();
bundle.putCharSequence("Hint", "test");
startActivityForResult(new Intent(this, PosAct.class)
.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT)
.putExtras(bundle)
, request_code);

// This is in the PosAct activity which is being called by the class above:
// 1 - Fails!
CharSequence temp = bundle.getCharSequence("Hint");
((EditText) findViewById(R.id.editTextFloor)).setHint(temp);

// 2 - Fails!
((EditText) findViewById(R.id.editTextRoom))
.setHint((CharSequence)bundle.getCharSequence("Hint"));

Toast.makeText(getApplicationContext(), bundle.getCharSequence("Hint"), Toast.LENGTH_LONG).show();

// 3 - Works perfectly!
((EditText) findViewById(R.id.editTextStreet)).setHint("test");

Я пытаюсь установить текст подсказки, используя код Java вместо xml, но мне не удается использовать какую-либо переменную в качестве аргумента метода setHint ().Выше я делаю попытки в 3 различных EditText.

Nr 1 выше не работает.EditText остается пустым.Nr 2 выше имеет тот же результат, но тост отображается правильно («тест»).Номер 3 выше работает отлично, EditText имеет «test» в качестве текста подсказки.

Сначала я попытался использовать String с теми же результатами.Явное использование CharSequence не помогло.О чем это все ???

1 Ответ

1 голос
/ 04 февраля 2012

Попробуйте это ..

 Intent intent = new Intent(this, PosAct.class)
.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);


        //load the intent with a key "hint" and assign it's value
        //to be whatever has been entered into the text field...
        intent.putExtra("hint","test");

В своей деятельности вы переходите, чтобы использовать это ..

    Bundle extras = intent.getExtras();
    mEditText1.setHint(extras != null ? extras.getString("hint"):"nothing 
...