我通过http://android-holo-colors.com/在我的应用程序中将颜色主题应用于我的小部件,但我的ListView中的项目不遵循颜色主题。我尝试在ListView之外创建一个简单的CheckBox项目,我的颜色主题是绿色应用于ListView之外的单个CheckBox。我的颜色主题曾经用于处理ListView中的项目,我刚刚注意到它已停止工作但我没有对我的AppTheme进行任何更改。
下面的屏幕截图显示我的颜色仅适用于ListView外部的第一个CheckBox,但我的ListView上的项目不会在CheckBox上应用我的颜色主题
下面是我在ListView中设置CheckBox项目的BaseAdapter
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) this.context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.subject_row, null);
CheckBox textRow = (CheckBox) convertView.findViewById(R.id.subject);
textRow.setText(getItem(position));
textRow.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (v instanceof CheckBox) {
String subject = ((CheckBox) v).getText().toString();
Log.i("subject", subject);
if (((CheckBox) v).isChecked()) {
activity.arrayListSelectedSubject.add(subject);
}
try {
if (!((CheckBox) v).isChecked()) {
activity.arrayListSelectedSubject
.remove(activity.arrayListSelectedSubject
.indexOf(subject));
}
} catch (Exception e) {
Log.e("catch Exception", String.valueOf(e));
e.printStackTrace();
}// end try-catch
}// end if (v instanceof CheckBox)
Log.i("selectedSubjectArrayList", String
.valueOf(activity.arrayListSelectedSubject.size()));
}// end onClick
});// end setOnClickListener
return convertView;
}
答案 0 :(得分:2)
您应该使用activity.this
作为上下文,而不是getApplicationContext()
。
答案 1 :(得分:0)
我也有这个问题。 尝试使用getView函数的ViewGroup父级来获取正确的上下文。
LayoutInflater inflater = (LayoutInflater) parent.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);