Java Android自定义适配器,具有editText和textView
我正在尝试为数独游戏实现一个Android应用程序,并为此创建了一个定制的适配器。我想为允许用户修改的单元格创建编辑文本,并为程序填充的单元格创建文本视图,编辑文本和文本视图的数量将是随机的。如何在适配器中指定它 这是我的适配器:Java Android自定义适配器,具有editText和textView,java,android,adapter,Java,Android,Adapter,我正在尝试为数独游戏实现一个Android应用程序,并为此创建了一个定制的适配器。我想为允许用户修改的单元格创建编辑文本,并为程序填充的单元格创建文本视图,编辑文本和文本视图的数量将是随机的。如何在适配器中指定它 这是我的适配器: public class SodukuAdapter extends BaseAdapter { ArrayList<String> items; static Activity mActivity; private sta
public class SodukuAdapter extends BaseAdapter {
ArrayList<String> items;
static Activity mActivity;
private static LayoutInflater inflater = null;
public SodukuAdapter (Activity activity, ArrayList<String> tempTitle,) {
mActivity = activity;
items = tempTitle;
inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public final int getCount() {
return items.size();
}
@Override
public final Object getItem(int position) {
return items.get(position);
}
@Override
public final long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View v = null;
v = inflater.inflate(R.layout.item, null);
EditText et = (EditText) v.findViewById(R.id.et);
et.setText(items.get(position));
return v;
}
}
公共类SodukuAdapter扩展BaseAdapter{
数组列表项;
静态活性;
专用静态充气机=空;
公共SodukuAdapter(活动,ArrayList Tentitle){
活动性=活动性;
项目=诱惑力;
充气器=(充气器)活动
.getSystemService(上下文布局\充气机\服务);
}
@凌驾
公共最终整数getCount(){
返回items.size();
}
@凌驾
公共最终对象getItem(int位置){
返回项目。获取(位置);
}
@凌驾
公共最终长getItemId(int位置){
返回位置;
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
视图v=null;
v=充气机充气(R.layout.item,空);
EditText et=(EditText)v.findViewById(R.id.et);
et.setText(items.get(position));
返回v;
}
}
您可以将两个视图放置在同一父视图中(例如,父视图是相对视图
或框架布局
),以便它们位于彼此的顶部。然后在适配器的getView()
方法中使用setVisibility()
隐藏其中一个,并显示另一个
当然,您需要一个数据源对象来跟踪视图是显示TextView
还是显示EditText
:
class SodokuItem {
public boolean isStatic;
public String text;
}
...
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View v = inflater.inflate(R.layout.item, null);
SodokuItem item = items.get(position);
EditText et = (EditText) v.findViewById(R.id.et);
TextView tv = (TextView) v.findViewById(R.id.tv);
if(item.isStatic){
et.setVisibility(GONE);
tv.setText(item.text);
}else{
tv.setVisibility(GONE);
et.setText(item.text);
}
return v;
}