2016-04-18 6 views
1

AndroidのアクティビティでEditTextバックグラウンドリソースを取得するにはどうすればよいですか?EditTextバックグラウンドリソースを取得

私の短い例のアプリケーションはこれです:あなたがHashMapを作成するためにそれを行うことができますどのような

Button1: EditText.setBackgroundResource(R.drawable.redstyle); //Red style xml 
Button2: EditText.setBackgroundResource(R.drawable.greenstyle); // Green style xml 

if(????????????????????????????????????){ 
    Toast.makeText(this,"Green is selected",Toast.LENGTH_LONG).show(); 
}else{ 
    Toast.makeText(this,"Red is selected",Toast.LENGTH_LONG).show(); 
} 
+0

これを制御するのに役立つ状態変数が導入されているはずです。 EditTextは、状態に反応するプレゼンテーション層にあります。 –

答えて

1

、そしてあなたがのEditTextで背景を挿入したときだけ

HashMap<EditText,Integer> hashMap; 
edit_text.setBackgroundResources(R.drawable.redstyle); 
hashMap.put(edit_text,R.drawable.redstyle); 

if(hashMap.get(edit_text)==R.drawable.redstyle) 
{ 
    //do something 
}else{ 
    //do something 
} 
+0

私のエラーは:メソッド "getBackgroundDrawable()"を解決できません:( –

+0

投稿編集 – Ricardo

+0

ボタンで私の背景色をマップするにはどうすればいいですか? –

1

それをマッピングし、これを試してください

if(edit_text.getBackground()==getResources().getDrawable(R.drawable.redstyle)){ 
    Toast.makeText(MainActivity.this,"red selected",Toast.LENGTH_LONG).show(); 
}else{ 
    Toast.makeText(MainActivity.this,"Green selected",Toast.LENGTH_LONG).show(); 
} 
+0

このコードは緑色を選択すると緑色を表示する: '( –

0

私の最初の考えはeditTextStateでした。このようなもの

Button1: EditText.setBackgroundResource(R.drawable.redstyle); //Red style xml 
     editTextState = 1; 

Button2: EditText.setBackgroundResource(R.drawable.greenstyle); // Green style xml 
      editTextState = 2; 

if(editTextState == 2){ 
    Toast.makeText(this,"Green is selected",Toast.LENGTH_LONG).show(); 
}else{ 
    Toast.makeText(this,"Red is selected",Toast.LENGTH_LONG).show(); 
} 

xmlレイアウトに設定したeditTextの背景色に従って状態値を定義できます。たとえば、赤い背景でeditTextを設定した場合:

int editTextState = 1;