2016-10-18 4 views
0

私はAndroidデベロッパーが初めてです。一般的なプログラミングにも適用されます。私はJavaで端末アプリとして書いたテキストベースのRPGを持っており、Androidアプリとして再作成しようとしています。しかし、私はかなり最初に立ち往生しています。Android EditTextフィールドからユーザー入力を返します

EditTextビューからユーザー入力を返し、その値をStringに格納するにはどうすればよいですか?以下は

は、私は問題を把握するために作られた使い捨てのプロジェクトです:

public class MainActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    String a = "Hello from"; 
    String b = "the other"; 
    String c = "SIDE!"; 
    String d = "What you don't like Adele?"; 

    final String userIn; 

    final EditText editText = (EditText) findViewById(R.id.editText); 
    TextView textView = (TextView) findViewById(R.id.viewText); 

    editText.setOnEditorActionListener(new TextView.OnEditorActionListener() { 
     @Override 
     public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
      boolean handled = false; 
      if (actionId == EditorInfo.IME_ACTION_SEND) { 
       sendMessage(); 
       handled = true; 
      } 
      return handled; 
     } 

     private void sendMessage() { 
      userIn = editText.getText().toString(); 
     } 
    }); 

} 

それが機能して動作するように、最終的なことがあるので、私はuserInの値を変更することはできません。私は明らかに何かが欠けていると確信していますが、どんな助けも壮大になるでしょう!

+0

あなたはクラスのトップにメンバー変数として宣言できます – codeMagic

答えて

0

ユーザーはonCreate()外で宣言し、変更するようになります。 これを確認してください:

public class MainActivity extends AppCompatActivity { 
String userIn; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    String a = "Hello from"; 
    String b = "the other"; 
    String c = "SIDE!"; 
    String d = "What you don't like Adele?"; 



    final EditText editText = (EditText) findViewById(R.id.editText); 
    TextView textView = (TextView) findViewById(R.id.viewText); 

    editText.setOnEditorActionListener(new TextView.OnEditorActionListener() { 
     @Override 
     public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
      boolean handled = false; 
      if (actionId == EditorInfo.IME_ACTION_SEND) { 
       sendMessage(); 
       handled = true; 
      } 
      return handled; 
     } 

     private void sendMessage() { 
      userIn = editText.getText().toString(); 
     } 
    }); 

} 
関連する問題