做一个词典,要将测试的结果在最后显示出来。
举例:
单词:anderstand
选项:A:知道
B:牛
C:大便
D:热火队
显然答案是 A。
做测测试的时候,类似这样的单词测试有50个,每次都会让你选择一个的。比如我选择了
B:牛,那么这是错的。
我要在最后的单词测试中将显示:
单词:anderstand
选项:A:知道
B:牛
C:大便
D:热火队
将正确的答案的颜色设置成为蓝色,选错的答案设置成为红色,类似于
———————————————————————————————–》》》
也就是动态的显示我们a b c d四个选项的颜色喽。
listview用的是适配器是继承了baseadapter,所以我们从网上找答案,
(其实,我相信,好多同学朋友,起初使用listview都是通过百度,或者是谷歌来找代码做demo的)
于是百度,谷歌下
代码:
public class MyAdapter extends BaseAdapter{
private LayoutInflater mInflater;
public MyAdapter(Context context){
this.mInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mData.size();
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
holder=new ViewHolder();
convertView = mInflater.inflate(R.layout.vlist2, null);
holder.img = (ImageView)convertView.findViewById(R.id.img);
holder.title = (TextView)convertView.findViewById(R.id.title);
holder.info = (TextView)convertView.findViewById(R.id.info);
holder.viewBtn = (Button)convertView.findViewById(R.id.view_btn);
convertView.setTag(holder);
}else {
holder = (ViewHolder)convertView.getTag();
}
holder.img.setBackgroundResource((Integer)mData.get(position).get("img"));
holder.title.setText((String)mData.get(position).get("title"));
holder.info.setText((String)mData.get(position).get("info"));
holder.viewBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showInfo();
}
});
return convertView;
}
}
还有:http://xqjay19910131-yahoo-cn.iteye.com/blog/1167956
代码:
public class MyAdapter extends BaseAdapter{
private LayoutInflater flater;
public MyAdapter(Context context) {
super();
this.flater = LayoutInflater.from(context);
}
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder = null;
if(convertView == null){
holder = new ViewHolder();
convertView = flater.inflate(R.layout.user2, null);
holder.headimg = (ImageView) convertView.findViewById(R.id.headimg);
holder.nickname = (TextView) convertView.findViewById(R.id.nickname);
holder.textsign = (TextView) convertView.findViewById(R.id.textsign);
holder.listbtn = (Button) convertView.findViewById(R.id.listbtn);
convertView.setTag(holder);
}
else{
holder = (ViewHolder) convertView.getTag();
}
holder.headimg.setBackgroundResource((Integer)list.get(position).get("headimg"));
holder.nickname.setText((String)list.get(position).get("nickname"));
holder.textsign.setText((String)list.get(position).get("textsign"));
holder.listbtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
}
});
return convertView;
}
}
}
又或者两者的代码是一样的。
于是,我弄他们的代码下来到我的代码中就成了这样的:
// 查询历史上搜索过的单词 ,查询的表是history_word
private class TestWordResutListAdapter extends BaseAdapter {
// List
这里的
tv_wordtestresult_item_meana
tv_wordtestresult_item_meanb
tv_wordtestresult_item_meanc
tv_wordtestresult_item_meand
item的四个控件是的眼神是根据item中,从数据库来的值进行设置的
String ans_index = wordListMap.get("ans_index").trim();
String ans_press = wordListMap.get("ans_press").trim();
System.out.println("------->>ans_index" + ans_index + "------>>id=" + id);
System.out.println("------->>ans_press" + ans_press );
tv_wordtestresult_item_meanb.setTag(id) ;
if (ans_index.equals("1")) { //为正确答案标记绿色的颜色
tv_wordtestresult_item_meana.setTextColor(Color.GREEN) ;
System.out.println("-------1>>id =" + id);
}
else if (ans_index.equals("2")) {
tv_wordtestresult_item_meanb.setTextColor(Color.GREEN) ;
System.out.println("ans_index-------2>>id =" + id);
}
else if (ans_index.equals("3")) {
tv_wordtestresult_item_meanc.setTextColor(Color.GREEN) ;
System.out.println("ans_index-------3>>id =" + id);
}
else if (ans_index.equals("4")) {
tv_wordtestresult_item_meand.setTextColor(Color.GREEN) ;
System.out.println("ans_index-------4>>id =" + id);
}
if (!ans_index.equals(ans_press)) { //为选择错误的标记颜色为红色
System.out.println("ans_press------->>id =" + id);
if (ans_press.equals("1")) {
System.out.println("ans_press-------1>>id =" + id);
tv_wordtestresult_item_meana.setTextColor(Color.RED) ;
}
else if (ans_press.equals("2")) {
System.out.println("ans_press-------2>>id =" + id);
tv_wordtestresult_item_meanb.setTextColor(Color.RED) ;
}
else if (ans_press.equals("3")) {
System.out.println("ans_press-------3>>id =" + id);
tv_wordtestresult_item_meanc.setTextColor(Color.RED) ;
}
else if (ans_press.equals("4")) {
System.out.println("ans_press-------4>>id =" + id);
tv_wordtestresult_item_meand.setTextColor(Color.RED) ;
}
}
于是,做好以后,运行程序,当下拉上拉listview的时候,item的颜色是不对的,就是说,不该有颜色的控件,也添加了颜色。
可能是listview这样的情况大家遇到的比较少,我网上查了下,没有这样的例子。苦逼了,最后的居然是这样的:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// 获取ListView 每个布局文件
convertView = null ;
if (convertView == null) {
convertView = getLayoutInflater().inflate(R.layout.wordtestresult_list_item, null); // 获取每个ListView行的布局
}
//获得item word单词的id的值的
TextView tv_wordtestresult_item_id = (TextView) convertView
.findViewById(R.id.tv_wordtestresult_item_id); // 显示的单词在屏幕上的顺序
//显示序号的
TextView tv_wordtestresult_item_index = (TextView) convertView
.findViewById(R.id.tv_wordtestresult_item_index); // 显示的单词在屏幕上的顺序
//显示单词的
TextView tv_wordtestresult_item_word = (TextView) convertView
.findViewById(R.id.tv_wordtestresult_item_word); // 显示的单词在屏幕上的顺序
//显示答案1
TextView tv_wordtestresult_item_meana = (TextView) convertView
.findViewById(R.id.tv_wordtestresult_item_meana); // 显示的单词在屏幕上的顺序
//显示答案2
TextView tv_wordtestresult_item_meanb = (TextView) convertView
.findViewById(R.id.tv_wordtestresult_item_meanb); // 显示的单词在屏幕上的顺序
//显示答案3
TextView tv_wordtestresult_item_meanc = (TextView) convertView
.findViewById(R.id.tv_wordtestresult_item_meanc); // 显示的单词在屏幕上的顺序
//显示答案4
TextView tv_wordtestresult_item_meand = (TextView) convertView
.findViewById(R.id.tv_wordtestresult_item_meand); // 显示的单词在屏幕上的顺序
// 根据List lists的值进行设置
Map wordListMap = (Map) lst
.get(position);
String id = wordListMap.get("id") ;
String keyid = "[" + wordListMap.get("keyid") + "]";
String name = wordListMap.get("name");
String ans_A = wordListMap.get("ans_A");
String ans_B = wordListMap.get("ans_B");
String ans_C = wordListMap.get("ans_C");
String ans_D = wordListMap.get("ans_D");
String ans_index = wordListMap.get("ans_index").trim();
String ans_press = wordListMap.get("ans_press").trim();
System.out.println("------->>ans_index" + ans_index + "------>>id=" + id);
System.out.println("------->>ans_press" + ans_press );
tv_wordtestresult_item_meanb.setTag(id) ;
if (ans_index.equals("1")) { //为正确答案标记绿色的颜色
tv_wordtestresult_item_meana.setTextColor(Color.GREEN) ;
System.out.println("-------1>>id =" + id);
}
else if (ans_index.equals("2")) {
tv_wordtestresult_item_meanb.setTextColor(Color.GREEN) ;
System.out.println("ans_index-------2>>id =" + id);
}
else if (ans_index.equals("3")) {
tv_wordtestresult_item_meanc.setTextColor(Color.GREEN) ;
System.out.println("ans_index-------3>>id =" + id);
}
else if (ans_index.equals("4")) {
tv_wordtestresult_item_meand.setTextColor(Color.GREEN) ;
System.out.println("ans_index-------4>>id =" + id);
}
if (!ans_index.equals(ans_press)) { //为选择错误的标记颜色为红色
System.out.println("ans_press------->>id =" + id);
if (ans_press.equals("1")) {
System.out.println("ans_press-------1>>id =" + id);
tv_wordtestresult_item_meana.setTextColor(Color.RED) ;
}
else if (ans_press.equals("2")) {
System.out.println("ans_press-------2>>id =" + id);
tv_wordtestresult_item_meanb.setTextColor(Color.RED) ;
}
else if (ans_press.equals("3")) {
System.out.println("ans_press-------3>>id =" + id);
tv_wordtestresult_item_meanc.setTextColor(Color.RED) ;
}
else if (ans_press.equals("4")) {
System.out.println("ans_press-------4>>id =" + id);
tv_wordtestresult_item_meand.setTextColor(Color.RED) ;
}
}
tv_wordtestresult_item_id.setText(id) ;
tv_wordtestresult_item_index.setText(keyid) ;
tv_wordtestresult_item_word.setText(name) ;
tv_wordtestresult_item_meana.setText("A) " +ans_A) ;
tv_wordtestresult_item_meanb.setText("B) " +ans_B) ;
tv_wordtestresult_item_meanc.setText("C) " +ans_C) ;
tv_wordtestresult_item_meand.setText("D) " +ans_D) ;
tv_wordtestresult_item_id = null ;
tv_wordtestresult_item_index = null ;
tv_wordtestresult_item_word = null ;
tv_wordtestresult_item_meana = null ;
tv_wordtestresult_item_meanb = null ;
tv_wordtestresult_item_meanc = null ;
tv_wordtestresult_item_meand = null ;
ans_index = null ;
ans_press = null ;
return convertView;
}
} // end class
如上上面的一行代码就解决了问题了。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net