2016-04-06 13 views
1

私は、EditTextボックスといくつかのボタンを含むcoFragment.xmlファイルを持っています。私のcoFragment.javaファイルでは、ボタンにonClickListenersを登録したいので、押したときにテキストがEditTextボックスに追加されるようにします。フラグメントのテキストボックスを編集するonClickListenersの設定

マイcoFragment.javaファイルには、現在

明らか
public class CoFragment extends Fragment implements View.OnClickListener { 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup parentViewGroup, 
         Bundle savedInstanceState) { 
    final View v = inflater.inflate(R.layout.coFragment, parentViewGroup, false); 

    EditText input = (EditText) getView().findViewById(R.id.input_id); 

    Button oneButton = (Button) v.findViewById(R.id.one_button_id); 
    Button twoButton = (Button) v.findViewById(R.id.two_button_id); 
    Button threeButton = (Button) v.findViewById(R.id.three_button_id); 

    oneButton.setOnClickListener(this); 
    twoButton.setOnClickListener(this); 
    threeButton.setOnClickListener(this) 
} 

@Override 
public void onClick(View v) { 
    switch (v.getId()) { 
     case R.id.one_button_id: 
      input.append("1"); 
      break; 
     case R.id.two_button_id: 
      input.append("2"); 
      break; 
     case R.id.three_button_id: 
      input.append("3"); 
      break; 
} 

を持って、私は現在onClick方法でinputのEditTextオブジェクトにアクセスすることはできません。私が望む機能をどうやって得ることができますか?あなたはonCreateView()でそれを任意の方法の外にそれを宣言して初期化する必要がありEditTextonCreateView()外にアクセスしたい場合は

答えて

1

-

private EditText input; 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup parentViewGroup, 
         Bundle savedInstanceState) { 

.... 

input = (EditText) v.findViewById(R.id.input_id); 
.... 
} 

今、あなたはどこにでもinput旅館あなたのフラグメントを使用することができます。

+0

はご回答いただき、誠にありがとうございます - 私はあなたが示唆したものをしようとしたとき、私は 'java.lang.NullPointerExceptionが出ます:上の「android.view.View android.view.View.findViewById(int)を」仮想メソッドを呼び出すための試みをnullオブジェクト参照 ' – nilcit

+0

あなたは私が書いたものを正確にコピーしましたか?そのv.findViewById()でgetView()ではありません。findViewById –

+0

aah、ok、私はgetViewを使用しましたが、vではなくすべて使用しています。 – nilcit

関連する問題