私はユーザー入力(String)を取得したい簡単なアンドロイドアプリを持っています。だから私は "EditText"ボックスと "Enter"ボタンがあります。ユーザーが何かを入力してEnterキーを押すと、そのテキストを表示しようとしていますが、setOnClickListener()関数内のすべてのことを行う限り動作します。文字列変数は関数外ではnullになります。ここに私のコードは次のとおりです。文字列変数がsetOnClickListener()関数の外部でnullになる
public class MainActivity extends AppCompatActivity {
Button hitButton;
EditText userInput;
String myVariable;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
hitButton = (Button)findViewById(R.id.button);
hitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
userInput = (EditText)findViewById(R.id.userInput);
myVariable= userInput.getText().toString();
}
});
TextView textView = (TextView)findViewById(R.id.textView);
textView.setText(myVariable); // THIS IS THE PROBLEM
// IT DISPLAYS NULL WHICH MEANS THAT String myVariable = null
}
}
私はsetOnClickListener関数内TextView.setText(myVariable変数)を入れた場合、それは完璧に動作しますが、関数の外、myVariable変数がnullになります。そして、私は関数の外でその変数を使用する必要があります。事前に
感謝:)
役立つことを願っていますように、あなたはのonClickメソッド、このために使用SharedPreferences外にそれをしたい場合正常。 – NSimon
onClickは、ボタンをクリックしたときにだけトリガーするメソッドです。あなたのtextViewが値を更新する必要がある場合。これは外側よりもonClick内にある必要があります – Stallion
これはnullになるのではなく、実際にボタンをクリックして入力をmyVariableに設定する前にTextViewの値を設定していることです。'textView.setText(myVariable);を移動します。 'onClickListenerの中の部分 – zgc7009