我有一個ArrayAdapter類創建評論框。評論框內有一個按鈕,可以是藍色或黑色。按鈕的顏色取決於通過JSON接收的數組。如果數組看起來像這樣"NO","NO","YES","NO","NO","NO"
第三個按鈕將會有藍色文本。我的JSON和ArrayAdapter類一次創建7個評論框。問題是一旦代碼將按鈕更改爲藍色,它會不斷將按鈕更改爲藍色。通過這個我的意思是,如果一個數組收到,看起來像這樣"NO","NO","YES","NO","NO","NO"
第三個按鈕將是藍色,然後我收到另一組評論,所以這次這個數組看起來像這樣"NO","NO","NO","NO","NO","NO"
根據這個代碼沒有按鈕應該是藍色的,但對於一些原因第三個按鈕仍然是藍色的。我可以加載多個註釋集,第三個按鈕將始終爲藍色,即使代碼清楚地表明它應該是黑色的。奇怪的是,按鈕將是藍色的,但會像黑色按鈕一樣。這是我的ArrayAdapter,ArrayAdapter有奇怪的結果 - Android
class ListAdapter extends ArrayAdapter<Item> {
public ListAdapter(Context context, int textViewResourceId) {
super(context, textViewResourceId);
}
private List<Item> items;
public ListAdapter(Context context, int resource, List<Item> items) {
super(context, resource, items);
this.items = items;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi;
vi = LayoutInflater.from(getContext());
v = vi.inflate(R.layout.list_item_layout, null);
}
final Item p = items.get(position);
if (p != null) {
//set xml objects
//must be done inside of class
ButtonListViewItem = (TextView) v.findViewById(R.id.button_listview_item);
if(p.getJSONArray().equals("NO")){
ButtonListViewItem.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ButtonListViewItem.setTextColor(0xff000000);
new AsyncTask().execute();
}//end on click
});
}//end if equals NO
if(p.getJSONArray().equals("YES")){
ButtonListViewItem.setClickable(false);
ButtonListViewItem.setTextColor(0xff3399FF);
}//end if equals yes
}//end if null
return v;
}//end getView
}//end ListAdapter class
將你的代碼發佈到你正在設置數組和列表視圖的地方。 –
調用你的適配器「'ListAdapter'」聽起來像是一個保證與[Android的'ListAdapter'類]混淆的祕訣(http://developer.android.com/reference/android/widget/ListAdapter.html)('ArrayAdapter '延伸)。 – blahdiblah
只要它在不同的包中,我看到使用名稱ListAdapter沒有問題 – EJK