关于android中listview里面textview显示混乱

哪位大神能帮我解决下面代码中的listview里面textview的显示混乱问题 纠结好久了 谢谢 复制可以直接执行
源文件:
package com.example.listviewtest;

import java.util.ArrayList;

import android.os.Bundle;
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.NumberPicker;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {

ListView list;

ArrayList<String> buf = new ArrayList<String>();

LayoutInflater inflater;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    list = (ListView)findViewById(R.id.listView1);
    inflater = getLayoutInflater();
    for (int i=0;i<100;i++)
    {
        buf.add(String.valueOf(i));
    }
    list.setAdapter(adapter);
}


BaseAdapter adapter = new BaseAdapter() {

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        ViewHolder viewHolder;
        if (convertView == null)
        {
            convertView = inflater.inflate(R.layout.item, null);
            viewHolder = new ViewHolder();
            viewHolder.line = (LinearLayout)convertView.findViewById(R.id.single_item);
            convertView.setTag(viewHolder);
        }
        else
        {
            viewHolder = (ViewHolder)convertView.getTag();
        }
        TextView text = (TextView)viewHolder.line.getChildAt(1);
        text.setText(buf.get(position) + "");
        if (Integer.parseInt(buf.get(position)) % 5 == 0)
        {
            text.setTextColor(20);
            viewHolder.line.setClickable(false);
        }

        viewHolder.line.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                if (Integer.parseInt(buf.get(position)) % 5 == 0)
                {
                    return;
                }
                Toast.makeText(MainActivity.this, "position==" + position, Toast.LENGTH_SHORT).show();
            }
        });

        return convertView;
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return buf.size();
    }

    class ViewHolder 
    {
        public LinearLayout line;
    }
};

}

布局文件
1.activity_main.xml
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<ListView
    android:id="@+id/listView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
</ListView>


2.item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >

<LinearLayout
    android:id="@+id/single_item"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:src="@drawable/ic_launcher"/>

    <TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="20sp"
    android:padding="15dp"
    android:text="点我"
    android:textColor="#003399"/>

</LinearLayout>

2个回答

你适配器中的复用出现了问题 。 照你这么写 根本没复用到 。不符合逻辑

这涉及到listview里面的服用机制,其实gridview也是用这一套服用机制,如果你看过android源码就会知道,其实不管你怎么滑动,开启了服用机制,你的view就只有一套,这一套view大size就是你的屏幕可以现实view的数量,你往下往上滑都是服用之前用过的view,所以你在现实时候要做好判读有if就要有else这样是最保险的

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于android中TextView的富文本
首先 这个 富文本,简单来说,就是可以对文本中的文字操作的一些类的使用, 比如,超链接了,识别,html代码了,接下来举例如下,效果图 第一个textview,点击跳转,第二个是,点击,就是点击事件的处理,第三个就是自动识别,别打开相应的工具,想,默认浏览器,默认拨号器,默认emal了 布局如下 <LinearLayout xmlns:android="http://schema
求解,listView里面嵌套listView数据显示混乱
我弄了个listView嵌套listView 从服务器上获取数据rn最后显示出来,子项listView 把所有orderproduct里的数据都显示出来了,rnrnJson格式大致是这样rnrn "code": "1",rn "result": [rn rn "id": "10259",rn "createdate": "2014-06-30 21:23",rn "amount": "95.00",rn "score": "0",rn "paytype": "1",rn "statu": "已取消",rn "iscomment": "null",rn "orderproduct": rn "picture": "/attached/image/20140120/1390185473547_3.jpg",rn "productid": "10308",rn "productname": "钢铁是怎样炼成的",rn "productnumber": "1",rn "productprice": "90.0"rn rn ,rn rn "id": "10228",rn "createdate": "2014-03-04 17:50",rn "amount": "1085.00",rn "score": "0",rn "paytype": "1",rn "statu": "已取消",rn "iscomment": "null",rn "orderproduct": [rn rn "picture": "/attached/image/20140304/1393898360387_3.jpg",rn "productid": "10262",rn "productname": "儿童 新生婴儿纯棉防水围脖 围嘴 口水巾 宝宝超可爱绣花围兜围嘴",rn "productnumber": "1",rn "productprice": "12.0"rn ,rn rn "picture": "/attached/image/20140304/1393898360387_3.jpg",rn "productid": "10269",rn "productname": "玛尚N6000 USB笔记本电脑有线鼠标 女生可爱鼠标有线 USB鼠标",rn "productnumber": "1",rn "productprice": "16.0"rn rn ]rn rn ]rnrnrn当我单独读取订单号"id": "10228",这条数据时显示是正常的rn下面的是Json解析的类rnpublic static void orderListRead(String data, List list,rn Context context) rn Info info;rn OrderChildInfo childInfo;rn OrderChildAdapter childAdapter;rn List childList = new ArrayList();rnrn try rn JSONObject jsonobject = new JSONObject(data);rn JSONArray array = jsonobject.getJSONArray("result");rn for (int i = 0; i < array.length(); i++) rn info = new Info();rn JSONObject object = array.getJSONObject(i);rn String id = object.optString("id");// 订单号rn String time = object.optString("createdate");// 时间rn String score = object.optString("score");// 积分rn String status = object.optString("statu");// 状态rn String amount = object.optString("amount");// 合计rn JSONArray jsonArray = object.getJSONArray("orderproduct");rn for (int j = 0; j < jsonArray.length(); j++) rn childInfo = new OrderChildInfo();rn JSONObject objects = jsonArray.getJSONObject(j);rn String name = objects.optString("productname");// 商品rn String number = objects.optString("productnumber");// 数量rn String price = objects.optString("productprice");// 价格rn childInfo.setOrderChildName(name);rn childInfo.setOrderChildCount(number);rn childInfo.setOrderChildPrice(price);rn childList.add(childInfo);rn rn childAdapter = new OrderChildAdapter(context, childList);rn info.setOderCode("订单号" + id);rn info.setOderTime("时间:" + time);rn info.setOderIntegral("积分" + score);rn info.setOderPrice("合计" + amount);rn info.setOderStatus(status);rn info.setChildAdapter(childAdapter);rn list.add(info);rnrn rnrn catch (JSONException e) rn // TODO Auto-generated catch blockrn e.printStackTrace();rn rnrn rnrn下面是adapterrnpublic class OrderListAdapter extends BaseAdapter rn List list;rn LayoutInflater inflater;rn Context context;rnrn public OrderListAdapter(Context context, List list) rn this.context = context;rn this.list = list;rn inflater = LayoutInflater.from(context);rn rnrn @Overridern public int getCount() rn // TODO Auto-generated method stubrn return list == null ? 0 : list.size();rn rnrn @Overridern public Object getItem(int arg0) rn // TODO Auto-generated method stubrn return list.get(arg0);rn rnrn @Overridern public long getItemId(int arg0) rn // TODO Auto-generated method stubrn return 0;rn rnrn @Overridern public View getView(int position, View view, ViewGroup arg2) rn // TODO Auto-generated method stubrn OrderHolder holder;rn if (view == null) rn holder = new OrderHolder();rn view = inflater.inflate(R.layout.order_list_parent_item, null);rn holder.orderCode = (TextView) viewrn .findViewById(R.id.order_item_code);rn holder.orderStatus = (TextView) viewrn .findViewById(R.id.order_item_status);rn holder.orderTime = (TextView) viewrn .findViewById(R.id.order_item_time);rn holder.orderPrice = (TextView) viewrn .findViewById(R.id.order_item_price);rn holder.orderIntegral = (TextView) viewrn .findViewById(R.id.order_item_integral);rn holder.oderChildList = (ListView) viewrn .findViewById(R.id.order_item_list);rn view.setTag(holder);rn else rn holder = (OrderHolder) view.getTag();rn rn Info info = list.get(position);rn holder.orderCode.setText(info.getOderCode());rn holder.orderStatus.setText(info.getOderStatus());rn holder.orderTime.setText(info.getOderTime());rn holder.orderPrice.setText(info.getOderPrice());rn holder.orderIntegral.setText(info.getOderIntegral());rn holder.oderChildList.setAdapter(info.getChildAdapter());rnrn return view;rn rnrn class OrderHolder rn TextView orderCode = null;rn TextView orderStatus = null;rn TextView orderTime = null;rn TextView orderPrice = null;rn TextView orderIntegral = null;rn ListView oderChildList = null;rnrn rn下面是子项listView的adapterrnpublic class OrderChildAdapter extends BaseAdapter rn List list;rn LayoutInflater inflater;rn Context context;rnrn public OrderChildAdapter(Context context, List list) rn this.context = context;rn this.list = list;rn inflater = LayoutInflater.from(context);rn rnrn @Overridern public int getCount() rn // TODO Auto-generated method stubrn return list == null ? 0 : list.size();rn rnrn @Overridern public Object getItem(int arg0) rn // TODO Auto-generated method stubrn return list.get(arg0);rn rnrn @Overridern public long getItemId(int arg0) rn // TODO Auto-generated method stubrn return 0;rn rnrn @Overridern public View getView(int position, View view, ViewGroup arg2) rn // TODO Auto-generated method stubrn OrderChildHolder holder;rn if (view == null) rn holder = new OrderChildHolder();rn view = inflater.inflate(R.layout.order_list_child_item, null);rn holder.orderIcon = (ImageView) viewrn .findViewById(R.id.order_list_child_img);rn holder.orderName = (TextView) viewrn .findViewById(R.id.order_list_child_name);rn holder.orderCount = (TextView) viewrn .findViewById(R.id.order_list_child_count);rn holder.orderPrice = (TextView) viewrn .findViewById(R.id.order_list_child_price);rn view.setTag(holder);rn else rn holder = (OrderChildHolder) view.getTag();rn rn OrderChildInfo info = list.get(position);rn BitmapUtils bitmapUtils = new BitmapUtils(context);rn bitmapUtils.display(holder.orderIcon, info.getOrderChildImg());rn holder.orderName.setText(info.getOrderChildName());rn holder.orderCount.setText(info.getOrderChildCount());rn holder.orderPrice.setText(info.getOrderChildPrice());rn return view;rn rnrn class OrderChildHolder rn ImageView orderIcon = null;rn TextView orderName = null;rn TextView orderCount = null;rn TextView orderPrice = null;rn rnrn
关于android TextView
rn.xml:rnrnrnrn.java:rn tfTextView = (TextView)findViewById(R.id.tf);rn tfTextView.setMovementMethod(ScrollingMovementMethod.getInstance());rnrn要显示的是一段较长的文字,但是每次进去滚动条都被拉到了最下面,搞的每次都要将滚动条滑上去。如何设置TextView进去就显示文字段的开头:问题就像下边这个图一样(只是举个例子,手机上不好截图):rnrn[img=http://my.csdn.net/truckys/album/detail/1162409#][/img]rn
ListView中View的显示混乱问题
在使用自定义ListView视图时,经常会采用重用ListView中视图的方式来提高滑动和显示效率,但是随之而来的一个问题是listview中数据经常显示混乱。 今天我就遇到一个问题,我的view中明明是没有从服务器接收图片数据的,可是显示的时候,还是显示出了不属于自己的图片,这让人很无语。后来也上网上找了关于这方面的内容看了下。 是因为在View getview(int position
解决排版混乱的textview
最近,正在做小说阅读器,前几天刚刚搞好文字分配,文字排版又出了问题,百度全是全角半角什么转换,特殊字符转换什么的,根本没用,愁死我了,终于在CSDN找了一个控件JustifyTextView,完美解决排版混乱。
TextView中英文排版混乱
TextView问题由来TextView在中英文夹杂的时候,会出现自动断行的情况,相信许多人都碰见过。这是系统的一个Bug,在Android5.0以后被修复了,而5.0以下的还没有见到比较好的解决版本。 参考了网上的方法,有的朋友推荐使用全角和半角转换(没有解决问题),也有的推荐了JustifyTextView这个控件(效果也不理想)。 于是我决定自定义一个TextView来做这件事,勉强解决了
android listview里面Radiogroup监听事件混乱
public class AdapterTest extends ArrayAdapter nn private int resourceId;n List listTest = new ArrayList();n private ViewHolder viewHolder;nn public AdapterTest(Context context, int resource, nnList objects) n super(context, resource, objects);n resourceId = resource;n listTest = objects;n nn @Overriden public View getView(final int position, View nnconvertView,n ViewGroup parent) nn viewHolder = new ViewHolder();n View view = LayoutInflater.from(getContextnn()).inflate(resourceId,n null);nn viewHolder.tvTitle = (TextView) viewn .findViewByIdnn(R.id.tv_test_title);n viewHolder.rdoG = (RadioGroup) nnview.findViewById(R.id.rdog_test);n viewHolder.radA = (RadioButton) nnview.findViewById(R.id.rdo_test_a);n viewHolder.radB = (RadioButton) nnview.findViewById(R.id.rdo_test_b);n viewHolder.radC = (RadioButton) nnview.findViewById(R.id.rdo_test_c);n viewHolder.radD = (RadioButton) nnview.findViewById(R.id.rdo_test_d);n viewHolder.tvAnswer = (TextView) viewn .findViewByIdnn(R.id.tv_test_answer);nn viewHolder.tvTitle.setText(String.valueOfnn(position + 1) + "、"n + listTest.getnn(position).getTitle());n viewHolder.radA.setText("A、"n + listTest.getnn(position).getQuestionA());n viewHolder.radB.setText("B、"n + listTest.getnn(position).getQuestionB());n viewHolder.radC.setText("C、"n + listTest.getnn(position).getQuestionC());n viewHolder.radD.setText("D、"n + listTest.getnn(position).getQuestionD());n viewHolder.tvAnswer.setText("答案:"n + listTest.getnn(position).getAnswer());nn // viewHolder.rdoG.setTag(position);n if (listTest.get(position).getCheckednn().equals("A")n || listTest.getnn(position).getChecked().equals("B")n || listTest.getnn(position).getChecked().equals("C")n || listTest.getnn(position).getChecked().equals("D")) nn if (listTest.get(position).getCheckednn().equals("A")) n viewHolder.radA.setCheckednn(true);n if (listTest.getnn(position).getAnswer()n .equalsnn(listTest.get(position).getChecked()))n nnviewHolder.tvAnswer.setTextColor(0xff008000);n elsen nnviewHolder.tvAnswer.setTextColor(0xffdc143c);n nnviewHolder.tvAnswer.setVisibility(View.VISIBLE);n n if (listTest.get(position).getCheckednn().equals("B")) n viewHolder.radB.setCheckednn(true);n if (listTest.getnn(position).getAnswer()n .equalsnn(listTest.get(position).getChecked()))n nnviewHolder.tvAnswer.setTextColor(0xff008000);n elsen nnviewHolder.tvAnswer.setTextColor(0xffdc143c);n nnviewHolder.tvAnswer.setVisibility(View.VISIBLE);n n if (listTest.get(position).getCheckednn().equals("C")) n viewHolder.radC.setCheckednn(true);n if (listTest.getnn(position).getAnswer()n .equalsnn(listTest.get(position).getChecked()))n nnviewHolder.tvAnswer.setTextColor(0xff008000);n elsen nnviewHolder.tvAnswer.setTextColor(0xffdc143c);n nnviewHolder.tvAnswer.setVisibility(View.VISIBLE);n n if (listTest.get(position).getCheckednn().equals("D")) n viewHolder.radD.setCheckednn(true);n if (listTest.getnn(position).getAnswer()n .equalsnn(listTest.get(position).getChecked()))n nnviewHolder.tvAnswer.setTextColor(0xff008000);n elsen nnviewHolder.tvAnswer.setTextColor(0xffdc143c);n nnviewHolder.tvAnswer.setVisibility(View.VISIBLE);n n viewHolder.radA.setEnabled(false);n viewHolder.radB.setEnabled(false);n viewHolder.radC.setEnabled(false);n viewHolder.radD.setEnabled(false);n else n viewHolder.rdoG.clearCheck();n viewHolder.tvAnswer.setVisibilitynn(View.GONE);n nviewHolder.rdoG.setOnCheckedChangeListener(new nnOnCheckedChangeListener() n n @Overriden public void onCheckedChangednn(RadioGroup arg0, int arg1) n if(viewHolder.rdoG == arg0)n switch (arg1) n case R.id.rdo_test_a:n listTest.getnn(position).setChecked("A");n n if nn(listTest.get(position).getAnswer()n nn.equals(listTest.get(position).getChecked()))n nnviewHolder.tvAnswer.setTextColor(0xff008000);n elsen nnviewHolder.tvAnswer.setTextColor(0xffdc143c);n nnviewHolder.tvAnswer.setVisibility(View.VISIBLE);n nnviewHolder.radA.setEnabled(false);n nnviewHolder.radB.setEnabled(false);n nnviewHolder.radC.setEnabled(false);n nnviewHolder.radD.setEnabled(false);n break;n n case R.id.rdo_test_b:n listTest.getnn(position).setChecked("B");n n if nn(listTest.get(position).getAnswer()n nn.equals(listTest.get(position).getChecked()))n nnviewHolder.tvAnswer.setTextColor(0xff008000);n elsen nnviewHolder.tvAnswer.setTextColor(0xffdc143c);n nnviewHolder.tvAnswer.setVisibility(View.VISIBLE);n nnviewHolder.radA.setEnabled(false);n nnviewHolder.radB.setEnabled(false);n nnviewHolder.radC.setEnabled(false);n nnviewHolder.radD.setEnabled(false);n break;n n case R.id.rdo_test_c:n listTest.getnn(position).setChecked("C");n n if nn(listTest.get(position).getAnswer()n nn.equals(listTest.get(position).getChecked()))n nnviewHolder.tvAnswer.setTextColor(0xff008000);n elsen nnviewHolder.tvAnswer.setTextColor(0xffdc143c);n nnviewHolder.tvAnswer.setVisibility(View.VISIBLE);n nnviewHolder.radA.setEnabled(false);n nnviewHolder.radB.setEnabled(false);n nnviewHolder.radC.setEnabled(false);n nnviewHolder.radD.setEnabled(false);n break;n n case R.id.rdo_test_d:n listTest.getnn(position).setChecked("D");n n if nn(listTest.get(position).getAnswer()n nn.equals(listTest.get(position).getChecked()))n nnviewHolder.tvAnswer.setTextColor(0xff008000);n elsen nnviewHolder.tvAnswer.setTextColor(0xffdc143c);n nnviewHolder.tvAnswer.setVisibility(View.VISIBLE);n nnviewHolder.radA.setEnabled(false);n nnviewHolder.radB.setEnabled(false);n nnviewHolder.radC.setEnabled(false);n nnviewHolder.radD.setEnabled(false);n break;n n default:n break;n n n n n );n n return view;n nn class ViewHolder n TextView tvTitle;n RadioGroup rdoG;n RadioButton radA;n RadioButton radB;n RadioButton radC;n RadioButton radD;n TextView tvAnswer;nn n nn
如何在ListView中的TextView显示跑马灯效果?
问题描述 textview控件中添加如下属性可以实现跑马灯效果: android:layout_height="wrap_parent" android:marqueeRepeatLimit="1"//表示为滚动显示一次 android:singleLine="true" //表示单行显示 android:ellipsize="marquee" //表示滚动效果 android:fo
listview中的图标加载混乱
第一次进入页面时,图标都是显示在正确的位置,但是当滑动时就出现问题了——加载混乱,不该出现的位置也出现了。。下面是adapter的getView方法代码,listview常见的解决办法也使用了,怎么还会有问题呢?[img=http://img.my.csdn.net/uploads/201212/05/1354674341_2400.jpg][/img][code=java] @Overridern public View getView(final int position, View convertView,rn ViewGroup parent) rn View view = null;rn ViewHolder holder = null;rn if (convertView != null) rn view = convertView;rn holder = (ViewHolder) view.getTag();rn else rn view = mInflater.inflate(R.layout.linedetail_item, null);rn holder = new ViewHolder();rn holder.bus_icon = (ImageView) view.findViewById(R.id.bus_icon);rn holder.bus_LineName = (TextView) viewrn .findViewById(R.id.et_staticonname);rn holder.bus_num = (TextView) view.findViewById(R.id.et_busnum);rn holder.bus_serial = (TextView) viewrn .findViewById(R.id.et_serial);rn view.setTag(holder);rn rn // 绑定数据rn if (istop) rn if (map.containsKey(position + 1 + "")) rn String str = map.get(position + 1 + "");rn int num = Integer.parseInt(str);rn if (num == 1) rn holder.bus_icon.setImageResource(R.drawable.bus_blue);rn else rn holder.bus_num.setText(str);rn holder.bus_icon.setImageResource(R.drawable.bus_blue);rn rn rn holder.bus_LineName.setText(list.get(position));rn holder.bus_LineName.setOnClickListener(new OnClickListener() rn @Overridern public void onClick(View v) rn goto_stationName = list.get(position);rn Log.i("i", "目的地站点名称是::" + goto_stationName);rn showDialogSetUp();rn rn );rn else rn if (down_map.containsKey(position + 1 + "")) rn String str = down_map.get(position + 1 + "");rn int num = Integer.parseInt(str);rn if (num == 1) rn holder.bus_icon.setImageResource(R.drawable.bus_blue);rn else rn holder.bus_num.setText(str);rn holder.bus_icon.setImageResource(R.drawable.bus_blue);rn rn rn holder.bus_LineName.setText(down_list.get(position));rn holder.bus_LineName.setOnClickListener(new OnClickListener() rn @Overridern public void onClick(View v) rn goto_stationName = down_list.get(position);rn Log.i("i", "目的地站点名称是::" + goto_stationName);rn showDialogSetUp();rn rn );rn rn holder.bus_serial.setText(position + 1 + ".");// 序号rn // 可以根据istop 标记为来显示车辆的图标 ,map的key是站点序号rn return view;rn [/code]
关于Android实现TextView跑马灯效果
在xml属性中设置<TextView android:width="wrap_content" android:height="wrap_content" android:singleLine="true" android:ellipsize="marquee" android:marqueeRepeatMode="marquee_forever" a
关于android自定义textview边框。
想给textview加一个边框,自定义了一个BorderTextView类,结果没什么用,边框显示不出来。直接上代码了。rn![图片说明](https://img-ask.csdn.net/upload/201902/27/1551254905_682266.jpg)![图片说明](https://img-ask.csdn.net/upload/201902/27/1551254916_711282.png)![图片说明](https://img-ask.csdn.net/upload/201902/27/1551254926_638363.jpg)rn请问出了什么问题呢,也试了另外一种方法rn![图片说明](https://img-ask.csdn.net/upload/201902/27/1551258277_528932.jpg)![图片说明](https://img-ask.csdn.net/upload/201902/27/1551258291_166293.png)![图片说明](https://img-ask.csdn.net/upload/201902/27/1551258314_31655.jpg)rn结果就如图所示,有几个下面的边框没有画出来,求解rnrnrnrnrnrn
关于android TextView自动滚动的测试
在开发过程中遇到了自动滚动的要求,把测试代码保存在此方便以后使用
android textview里面显示图文混排
1.添加工具类 package com.boya.student.util; import java.io.BufferedInputStream; import java.net.URL; import java.net.URLConnection; import android.content.Context; import android.graphics.Bit
listview中item上点击textview改变该itme上textview的值发生混乱
各位大神,我目前做个listview,listview的item上有很多控件,textview就是其中一个。我要实现的功能是,仅仅点击item上的textview,点击listview上任何的item上的textview,该行上的textview就改变值,其他item上的textview就不能改变值。rnrn目前listview中item上点击textview改变该itme上textview的值发生混乱,即点击某一行item的textview,该行textview值不发生改变,反而其他行item发生改变了。rnrn[code=java]public class ContactFriendAdapter extends BaseAdapterrn private static final String TAG = ContactFriendAdapter.class.getSimpleName();rn private List dataList;rn private Context context;rn private LayoutInflater inflater;rn rn private ViewHolder viewholder;rn private List listInvited;rn rn private MyClickListener myClickListener = null;rn rn public ContactFriendAdapter(Context context, List dataList)rn this.dataList = dataList;rn this.context = context;rn this.inflater = LayoutInflater.from(context);rn rn rn public List getDataList() rn return dataList;rn rnrn public void setDataList(List dataList) rn this.dataList = dataList;rn rnrn @Overridern public int getCount() rn return dataList.size();rn rnrn @Overridern public Object getItem(int position) rn return dataList.get(position);rn rnrn @Overridern public long getItemId(int position) rn return position;rn rnrn @Overridern public View getView(final int position, View convertView, ViewGroup parent) rn if(convertView==null)rn viewholder = new ViewHolder();rn convertView = inflater.inflate(R.layout.layout_select_contact_friends, null);rn myClickListener = new MyClickListener(position);rn viewholder.ivHeader = (ImageView) convertView.findViewById(R.id.iv_head);rn viewholder.tvName = (TextView) convertView.findViewById(R.id.tv_name);rn viewholder.tvPhone = (TextView) convertView.findViewById(R.id.tv_phone);rn viewholder.tvIsInvited = (TextView) convertView.findViewById(R.id.tv_is_invited);rn rn convertView.setTag(viewholder);rn elsern viewholder = (ViewHolder) convertView.getTag();rn rn rn notifyDataSetChanged(); //刷新数据rn rn if(dataList.get(position).getContacNameList().size()>1)rn for(int i=0; i getInvitedList()rn return listInvited;rn rnrn rn public class ViewHolderrn ImageView ivHeader;rn TextView tvName;rn TextView tvPhone;rn TextView tvIsInvited;rn rn rn private class MyClickListener implements OnClickListenerrn rn private int position;rn rn public MyClickListener(int position)rn this.position = position;rn rnrn @Overridern public void onClick(View v) rn // FIXMErn viewholder.tvIsInvited.setText("已发送邀请");rn listInvited = new ArrayList();rn if(dataList.get(position).getContacNameList().size()>1)rn for(int i=0; i
Textview解决换行混乱问题
首先感谢MTextView.java的原作者。由于找不到原作者的博客地址。我就贴下,我下载的源码的url:http://download.csdn.net/detail/yellowcath/7421147然后,在这个MTextView.java的基础上进行了修改,增加了Html的颜色功能。xxx下面是源码!import java.lang.ref.SoftReference; import ja
整篇textview文字排版混乱问题
当使用textview设置大量文字的时候,由于标点符号和中英文的原因,导致尾部有空白的情况,下面这个自定义textview比较好的解决了这个问题。 import android.content.Context; import android.graphics.Canvas; import android.text.Layout; import android.text.StaticLayout;
自定义TextView解决排版混乱
关于TextView多行排版不整齐的方法
TextView排版混乱或自动换行
在TextView显示文本的时候,我们经常会遇到自动换行后混乱的情况,这种情况是因为我们加载文本的时候没注意全角和半角或是中英字符。 一般我们输入数字、字母以及英文的时候都是半角,所以不会出现混乱,但是我们加入中文和英文混排的时候就会混乱。那么遇到这样的情况,我们只需要加载文本的时候转换一下就可以了。 下面我们一起来看看转换中英字符以及全角半角。 1.半角转为全角的代
关于TextView排版混乱的问题
我们在开发过程中经常发现,在TextView中遇到排版自动换行而导致混乱不堪。导致这个问题的原因是什么呢?本人经过了解得知导致这种问题产生的原因就是: 英文和中文混合输入,半角字符和全角字符混合在一起了 一般情况下,我们输入的数字、字母以及英文标点都是半角字符,所以占位无法确定,它们与汉字的占位不同,由于这个原因,导致很多文字的排版都是参差不齐的。 解决方案: (1)半角转为全角
ListView解决图片混乱
一个ListView解决图片混乱问题的例子。
ListView和CheckBox的混乱问题
主要是解决我以前的一篇博客仿微信添加群聊界面——addView里listview和checkbox混乱的问题先来上BUG图,我在添加了数据,让listview能滚动起来后就发现了这个问题,大家看图,我只点击了0,滑动后结果10也被点击了,而且再滑回去,被选中的项也会发生变化。
ListView发生混乱和解决办法
1.发生混乱的原因借用别人的图来解释一下:1.如上图第一屏的7条数据,也就是会产生7条数据和7个新的布局,2.当屏幕滑动第一条数据消失,复用机制就会发生了,先把item1放到recycler中,等待屏幕底部数据出现,3当item8出现时,就会复用item1的布局和数据,。也可以这样 public View getView(int position, View convertView, ViewG...
ListView匹配数据混乱
listview数据适配数据混乱
ListView异步加载图片混乱问题
ListView加载多个图片的时候,图片是异步加载的,当item数量多于一屏时,滑动ListView,后面的item在加载图片的时候会混乱。 问题原因是ListView的item复用问题,ListView不会每次都去创建新的item,而是尽量复用之前的item,这就会导致item上图片混乱的问题,也许image对应的position已经改变了,但是它还是去加载以前的bitmap,所以我们要保
解决listView列表混乱
实现功能 1.点击item上的按钮,向后台发送多个请求 2.解析返回的数据 3.及时写入item中 4.解决列表中上展示文本的混乱
校准修改ListView中的TextView
先看一下图片:rnrn![CSDN移动问答][1]rnrn基本上已经实现了大部分,就是**Movis**这里有问题,应该和前面对齐,显示在一行里,现在有点往下了。rnrnXML:rnrn rn rnrn rn rn rnrn怎么调整一下?谢谢rnrn [1]: http://i.stack.imgur.com/lOOzz.jpg
listview中的textview跑马灯效果失效
我的popwindow中包含一个listview,然后这个listview中又有几个textview控件,其中一个textview控件让它实现跑马灯效果(在获得焦点的时候实现)。现在的情况是listview中的某些item中的textview在获得焦点时能实现跑马灯效果,有些则不可以,需要点击该item时,textview中的文字才能移动。很奇怪的现象!不知道有谁遇到过否?
ListView 中 TextView 添加跑马灯效果
经常需要在ListView 的 item 中对TextView 添加跑马灯效果,由于ListView 的特殊性,我们需要对TextView 做一些额外的设置,否则没有效果。 1. ListView 设置focusable = true 2. TextView 设置focusable =true ; ellipsize = marquee; 下面给了一个简单跑马灯效果的样式:
listview中textview设置跑马灯效果
在listview中的textview中设置跑马灯效果,本来认为是一个很简单的问题,结果在开发中掉坑里了:跑马灯效果设置好运行后,跑马灯效果是有了,但listview的条目无法点击 了!坑所在:android:focusable=&quot;true&quot;textview的xml文件中不能添加该行代码,正确的xml文件如下:&amp;lt;TextView android:id=&quot;@+id/label&quot;...
关于android中的EditView,TextView的图片问题
在开发中经常遇到再一个输入框中需要使用到图片的问题. 这里做一个备份 1.在XML中使用 android:drawableLeft=&quot;@drawable/icon&quot; 2.代码中动态变化 Drawable drawable= getResources().getDrawable(R.drawable.drawable); ///!!!!!!!!!!!!!!!!!!...
Android中的 Scroll ListView 和 TextView
我想创建一个布局包含:rnrn - textview(标题)rn - listviewrnrn就是说当用户上下滑动滚动条的时候,希望整个画面的内容都一起上下滚动,而不是只滚动listview 里面的内容、如何实现这个功能呢?rn
C++里面混乱的字符串操作
小弟刚开始用C++做项目,发现c++里面的字符串转换很是麻烦,字符编码搞得我头都大了,做项目的大部分时间都浪费到了字符串转换上面,从char* CString LPCTSTR LPCTWSTR等多个类型的字符类型,大家在做项目的时候是不是都约定某一种编码,省的来回的转换,还有在这方面有没有什么技巧的,望分享。
Android 解决在ListView历史复用中Edittext数据显示混乱
有这么一个需求,就是在ListView中,每个条目都有Edittext,需要把每个Edittext输入的数据保存到对应的bean中,想要的效果是这样的: 这样一看,也没什么难度嘛,顶多就是在adapter的getview中对Edittext设置个文本改变监听嘛,当文本改变就把数据存到bean中,于是,在adapter中写了这段代码: private Context context;
Android 解决在ListView历史复用中数据显示混乱
如图所示,我们做了个提交评价功能,而UI设计让我们逐个评论,商量后还是要保持这样,那我们就只能按照这样的实现,那么这就用一个listview列表显示,item里面有好评差评textview,自定义星星控件,EditText,然后这样做了,中间出了问题,数据有四条,根据长度显示,只能显示下两条,那么当我操作了第一条数据的时候,比如我点击了差评,选择了星星,或填写了文本,当我滑动listview,滑动到
ListView中使用notifyDataSetChanged()刷新,item显示混乱。
RT,目标是在一个ListView中实现文件夹展开,收起的功能。rn基本构想是通过修改list数据,然后刷新画面的方式实现。rnrn展开前:rnitem0(文件夹,内有子item1,item2)rnitem3rnrn展开后预想结果:rnitem0rnitem1rnitem2rnitem3rnrn展开后实际显示效果:(mList的数据已确认是正确的1,2,3,4排列)rnitem0rnitem3rnitem3rnitem3rnrn补充:点击下边任意一个item3,都会触发最后一个item3的点击事件。似乎是position错位了。rnrn也有可能是convertView缓存更新的问题。rn小弟对此不太了解,请各位大师指教。谢谢。rnrnrn代码如下:rnrnpublic class ListAdapter extends ArrayAdapter rnrn private LayoutInflater layoutInflater;rn private Context mContext;rn ListAdapter mAdapter = this;rn ArrayList mList;rnrn @Overridern public View getView(int position, View convertView, ViewGroup parent) rn rn ViewHolder holder;rn final int fPosition = position;rnrnrn if (convertView == null) rn convertView = layoutInflater.inflate(R.layout.list_item, null);rn holder = new ViewHolder(convertView);rn convertView.setTag(holder);rn else rn holder = (ViewHolder) convertView.getTag();rn rn rn ……rnrn holder.btnForder.setOnClickListener(new View.OnClickListener() rn @Overridern public void onClick(View v) rn // 展开/收起文件夹rn if (mList.get(fPosition).getShowItemFlg() == 0)rn mList.get(fPosition).setShowItemFlg(1);rn // 展开rn showForder(fPosition, item);rn else rn mList.get(fPosition).setShowItemFlg(0);rn // 收起rn unshowForder(fPosition, item);rn rnrn for (int i=0;i cList = list.getForderItem();rn ArrayList fList = new ArrayList();rnrn int size = mList.size();rnrn // 保存待展开文件夹之后的itemrn if (positon + 1 < size) rn for (int i = positon + 1; i < size; i++) rn fList.add(mList.get(i));rn rnrn // 移除待展开文件夹之后的itemrn for (int i = size - 1; i > positon; i--) rn Log.d("%%%%%%%%%%", "mList.remove(i)=" + mList.get(i).getName());rn mList.remove(i);rn rn rnrn // 追加待展开文件夹之后的子itemrn for (int i = 0; i < cList.size(); i++) rn mList.add(cList.get(i));rn Log.d("%%%%%%%%%%", "cList.get(i).getName()=" + cList.get(i).getName());rn rnrn if (positon + 1 < size) rn // 追加保存的待展开文件夹之后的itemrn for (int i = 0; i < fList.size(); i++) rn mList.add(fList.get(i));rn rn rn rn rn rn // 收起文件夹rn private void unshowForder(int positon, ListData list) rnrn ArrayList cList = list.getForderItem();rn ArrayList fList = new ArrayList();rnrn int size = mList.size();rnrn // 保存待收起文件夹之后的非子itemrn for (int i=positon+cList.size()+1;ipositon;i--)rn mList.remove(i);rn rnrn // 追加待收起文件夹之后的非子itemrn for (int i=0;i
Android完美解决listview中多个edittext显示混乱问题
Android完美解决listview中多个edittext显示混乱问题,内含源码及apk文件
在TextView中显示特殊字符
碰见要在textview中显示特殊字符的情况,找了一下,要用转义字符实现. 例如: 以下为XML标志符的数字和字符串转义符  "     (&#34; 或 &quot;)  '      (&#39; 或 &apos;)  &     (&#38; 或 &amp;)  >     (&#62; 或 &gt;)  要全的请到下面地址去看: http://blog.csdn.n
关于android listview 的onItemClick方法
我自己写了一个adapter继承baseAdapter,能填充数据,但是我想在listView的onItemClick()中得到item中的值,这个方法里面有4个参数大概知道,但是我怎么获取之前put进去的值啊,我这里找了一个模板,但是不行,单击item以后,总在String number = map.get("number").toString();这一行报空指针,是哪里没有取出来呢?rn这是在mainActivity中使用数据rn[code=java]cardList.setAdapter(cardItemAdapter);rn //为每个列表项添加单击事件,点击进入名片详情rn cardList.setOnItemClickListener(new OnItemClickListener() rnrn @Overridern public void onItemClick(AdapterView parent, View view, int position,rn long id) rn ListView listView = (ListView)parent; rn @SuppressWarnings("unchecked")rn HashMap map = (HashMap)listView.getItemAtPosition(position); rn String number = map.get("number").toString();rn Intent intent = new Intent(MainActivity.this,CardDetailActivity.class);rn startActivity(intent);rn Log.v("abc", "你点击了ListView条目" + position+"电话是"+number);//在LogCat中输出信息rn rn );[/code]rn这是我写的适配器rn[code=java]package com.wisesoft.cloudwab.adapter;rnrnimport java.util.ArrayList;rnimport java.util.HashMap;rnrnimport com.wisesoft.cloudwab.R;rnimport com.wisesoft.cloudwab.bean.Data;rnrnimport android.content.Context;rnimport android.util.Log;rnimport android.view.LayoutInflater;rnimport android.view.View;rnimport android.view.ViewGroup;rnimport android.view.View.OnClickListener;rnimport android.widget.BaseAdapter;rnimport android.widget.ImageButton;rnimport android.widget.ImageView;rnimport android.widget.TextView;rnrnrnpublic class CardItemAdapter extends BaseAdapter rnrn private LayoutInflater mInflater;//得到一个LayoutInfalter对象用来导入布局rnrn /*构造函数*/rn public CardItemAdapter(Context context) rn this.mInflater = LayoutInflater.from(context);rn rnrn @Overridern public int getCount() rn rn return getData().size();//返回数组的长度rn rnrn @Overridern public Object getItem(int position) rn return null;rn rnrn @Overridern public long getItemId(int position) rn return 0;rn rn /*书中详细解释该方法*/rn @Overridern public View getView(final int position, View convertView, ViewGroup parent) rn ViewHolder holder;rn //观察convertView随ListView滚动情况rn Log.v("MyListViewBase", "getView " + position + " " + convertView);rn if (convertView == null) rn convertView = mInflater.inflate(R.layout.card_list_item,rn null);rn holder = new ViewHolder();rn /*得到各个控件的对象*/rn holder.alpha = (TextView) convertView.findViewById(R.id.alpha);rn holder.name = (TextView) convertView.findViewById(R.id.name);rn holder.number = (TextView) convertView.findViewById(R.id.number);rn holder.headImg = (ImageView)convertView.findViewById(R.id.headImg);rn holder.bt_call = (ImageButton) convertView.findViewById(R.id.bt_call);rn convertView.setTag(holder);//绑定ViewHolder对象rn rn elsern holder = (ViewHolder)convertView.getTag();//取出ViewHolder对象rn rn /*设置TextView显示的内容为我们存放在动态数组中的数据*/rn holder.alpha.setText(getData().get(position).get("alpha").toString());rn holder.name.setText(getData().get(position).get("name").toString());rn holder.number.setText(getData().get(position).get("number").toString());rn holder.headImg.setImageResource(R.drawable.mn);rn holder.bt_call.setImageResource(R.drawable.call);rn if(position!=0&&!(getData().get(position).get("alpha").equals(getData().get(position-1).get("alpha"))))rn holder.alpha.setVisibility(View.VISIBLE);rn /*为Button添加点击事件---打电话*/rn holder.bt_call.setOnClickListener(new OnClickListener() rn rn @Overridern public void onClick(View v) rn Log.v("abc", "你点击了按钮" + position);//打印Button的点击信息rn rn rn );rn rn return convertView;rn rn rn /*添加一个得到数据的方法,方便使用*/rn private ArrayList> getData()rn rn ArrayList> listItem = new ArrayList>();rn /*为动态数组添加数据*/rn int card_num = Data.cardList.size();rn for(int i=0;i map = new HashMap(); rn map.put("alpha", Data.cardList.get(i).getHeadSpell());rn map.put("number", Data.cardList.get(i).getTelNumber()); rn map.put("name", Data.cardList.get(i).getName()); rn listItem.add(map); rn rn return listItem;rn rn rn rn public final class ViewHolderrn public TextView alpha;rn public TextView number;rn public TextView name;rn public ImageView headImg;rn public ImageButton bt_call;rn rn rnrnrn[/code]
关于android的ListView优化
int(Color.parseColor(&quot;#FFFFFF&quot;)); 4.更改Item背景 一,可以通过自定义一个Adapter在父类的getView()中构建item,你可以在这个函数里设置。 二,在自定义的layout中设置viewgroup的selector    
关于Android ListView的优化问题
在Android开发中经常遇到listview界面卡顿的现象,很大部分原因是listview上写了太多控件导致的。百度了一下,大多数对listview的优化都是千篇一律,无非就是利用listview的重用控件的机制,新建一个ViewHolder类,将listview的控件都包含进来,然后在getview方法的时候判断一下如下,converView是否为空,将holder存进converView的t
相关热词 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图 c# 验证码图片生成类 c# 再次尝试 连接失败 c#开发编写规范 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数