2016-04-18 147 views
1

如何在我的Android活動中獲取EditText背景資源?獲取EditText背景資源

我簡短的例子程序是這樣的:

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

你可以做什麼來創建一個HashMap中,當你在一個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;