Java 如何从CustomAdapter将textColor设置为edittext
我有一个有编辑文本的活动。在活动中,我还有一个ListView,它通过调用CustomAdapter具有搜索功能。我想做的是从自定义适配器访问EditText,因此如果搜索没有返回任何内容,我想将文本颜色更改为红色 我的适配器类:Java 如何从CustomAdapter将textColor设置为edittext,java,android,eclipse,Java,Android,Eclipse,我有一个有编辑文本的活动。在活动中,我还有一个ListView,它通过调用CustomAdapter具有搜索功能。我想做的是从自定义适配器访问EditText,因此如果搜索没有返回任何内容,我想将文本颜色更改为红色 我的适配器类: import java.util.ArrayList; import java.util.Locale; import android.app.Activity; import android.content.Context; import android.grap
import java.util.ArrayList;
import java.util.Locale;
import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Filter;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
public class SetRowsCustomAdapter extends ArrayAdapter<SetRows> {
Context context;
int layoutResourceId;
ArrayList<SetRows> data=new ArrayList<SetRows>(); //data = countryList
private ArrayList<SetRows> originalList;
private NameFilter filter;
ImageHolder holder;
public SetRowsCustomAdapter(Context context, int layoutResourceId, ArrayList<SetRows> data) {
super(context, layoutResourceId, data);
this.layoutResourceId = layoutResourceId;
this.context = context;
this.data = data;
//this.data.addAll(data);
this.originalList = new ArrayList<SetRows>();
this.originalList.addAll(data);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
holder = null;
if(row == null)
{
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new ImageHolder();
holder.txtTitle = (TextView)row.findViewById(R.id.txtTitle);
holder.txtID = (TextView)row.findViewById(R.id.txtModDate);
holder.txtBen = (TextView) row.findViewById(R.id.txtBenefit);
holder.txtNum = (TextView) row.findViewById(R.id.txtNameNum);
holder.etS = (EditText) row.findViewById(R.id.etSearch);
row.setTag(holder);
}
else
{
holder = (ImageHolder)row.getTag();
}
SetRows myImage = data.get(position);
holder.txtTitle.setText(myImage.name);
holder.txtID.setText(myImage.id);
holder.txtNum.setText(myImage.num);
holder.txtBen.setText(myImage.ben);
holder.txtBen.setVisibility(View.GONE);
return row;
}
static class ImageHolder
{
TextView txtTitle;
TextView txtID;
TextView txtBen;
TextView txtNum;
EditText etS;
}
@Override
public Filter getFilter() {
if (filter == null){
filter = new NameFilter();
}
return filter;
}
private class NameFilter extends Filter {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
constraint = constraint.toString().toLowerCase(Locale.US);
FilterResults result = new FilterResults();
if(constraint != null && constraint.toString().length() > 0) {
ArrayList<SetRows> filteredItems = new ArrayList<SetRows>();
for(int i = 0, l = originalList.size(); i < l; i++) {
SetRows nameList = originalList.get(i);
if(nameList.toString().toLowerCase(Locale.US).contains(constraint))
filteredItems.add(nameList);
}
result.count = filteredItems.size();
result.values = filteredItems;
}
else {
synchronized(this) {
result.values = originalList;
result.count = originalList.size();
}
}
return result;
}
@SuppressWarnings("unchecked")
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
data = (ArrayList<SetRows>)results.values;
if (data.isEmpty()) {
holder.etS.setText("ll");
Toast.makeText(getContext(), "No result found", Toast.LENGTH_SHORT).show(); // returns blank
}
notifyDataSetChanged();
clear();
for(int i = 0, l = data.size(); i < l; i++)
add(data.get(i));
notifyDataSetInvalidated();
}
}
}
问题是因为您只有一个on holder,而引用已丢失 您应该为列表视图的每一行保存holder。 因此,请执行下一步:
- 定义
Map'问题是因为您只有on holder,而引用已丢失 您应该为列表视图的每一行保存holder。 因此,请执行下一步:- 定义
Map'问题是因为您只有on holder,而引用已丢失 您应该为列表视图的每一行保存holder。 因此,请执行下一步:- 定义
Map'问题是因为您只有on holder,而引用已丢失 您应该为列表视图的每一行保存holder。 因此,请执行下一步:- 定义
在构造函数中映射“”传递编辑文本引用并保留它。然后使用该引用更新颜色。为什么需要列表视图项之外的视图的holder?在构造函数中,传递编辑文本引用并保留它。然后使用该引用更新颜色。为什么需要列表视图项之外的视图的holder?在构造函数中,传递编辑文本引用并保留它。然后使用该引用更新颜色。为什么需要列表视图项之外的视图的holder?在构造函数中,传递编辑文本引用并保留它。然后使用该引用更新颜色。为什么您需要holder来创建列表视图项之外的视图?我只需使用
在活动
上进行转换,效果很好:)上下文
我所要做的就是简单地使用
在活动
上进行转换,效果很好:)上下文
我所要做的就是简单地使用
在活动
上进行转换,效果很好:)上下文
我所要做的就是简单地使用
在活动
上进行转换,效果很好:)上下文
我正在使用一个编辑文本,它使用一个搜索过滤器来允许用户搜索列表视图之外的内容。如何传递编辑文本的引用?通过构造函数,并将EditText类型的变量传递给适配器以保持不变。如何设置传递EditText类型的变量?我使用的编辑文本使用搜索过滤器,允许用户搜索列表视图之外的内容。如何传递编辑文本的引用?通过构造函数,并将EditText类型的变量传递给适配器以保持不变。如何设置传递EditText类型的变量?我使用的编辑文本使用搜索过滤器,允许用户搜索列表视图之外的内容。如何传递编辑文本的引用?通过构造函数,并将EditText类型的变量传递给适配器以保持不变。如何设置传递EditText类型的变量?我使用的编辑文本使用搜索过滤器,允许用户搜索列表视图之外的内容。如何通过构造函数传递对编辑文本的引用?如何设置传递类型为EditText的变量?01-09 19:34:25.566: E/AndroidRuntime(13668): FATAL EXCEPTION: main 01-09 19:34:25.566: E/AndroidRuntime(13668): java.lang.NullPointerException 01-09 19:34:25.566: E/AndroidRuntime(13668): at com.test.testing.SetRowsCustomAdapter$NameFilter.publishResults(SetRowsCustomAdapter.java:119) 01-09 19:34:25.566: E/AndroidRuntime(13668): at android.widget.Filter$ResultsHandler.handleMessage(Filter.java:282) 01-09 19:34:25.566: E/AndroidRuntime(13668): at android.os.Handler.dispatchMessage(Handler.java:99) 01-09 19:34:25.566: E/AndroidRuntime(13668): at android.os.Looper.loop(Looper.java:137) 01-09 19:34:25.566: E/AndroidRuntime(13668): at android.app.ActivityThread.main(ActivityThread.java:5195) 01-09 19:34:25.566: E/AndroidRuntime(13668): at java.lang.reflect.Method.invokeNative(Native Method) 01-09 19:34:25.566: E/AndroidRuntime(13668): at java.lang.reflect.Method.invoke(Method.java:511) 01-09 19:34:25.566: E/AndroidRuntime(13668): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795) 01-09 19:34:25.566: E/AndroidRuntime(13668): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562) 01-09 19:34:25.566: E/AndroidRuntime(13668): at dalvik.system.NativeStart.main(Native Method)
EditText I = (EditText) ((Activity)context).findViewById(R.id.etSearch); I.setTextColor(Color.parseColor("#FFCCCC"));
- 定义
- 定义
- 定义