listview 中的 button 问题

ThinSnorlax 2016-11-12 05:18:41
是这样的,我的listview中每个item上都有一个button,但是在设置这个button 按钮的风格(是否订阅)时,会以5个为基准,一起变化,比如position=0时,设置按钮为已订阅(缺省为订阅),当position为5时,按钮风格会变为和position=0一样,下面附上 adapter的getview代码

代码:



public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
if(convertView != null)
{
holder = (ViewHolder) convertView.getTag();
}
else
{
convertView = mInflater.inflate(R.layout.strategy_list, null);
holder = new ViewHolder();
holder.userImg = (ImageView)convertView.findViewById(R.id.StrategyUserImage);
holder.strategyName = (TextView)convertView.findViewById(R.id.StrategyName);
holder.strategyTitle = (TextView)convertView.findViewById(R.id.StrategyTitle);
holder.subscribeNum = (TextView)convertView.findViewById(R.id.subscribeNum);
holder.timeText = (TextView) convertView.findViewById(R.id.time_text);
//holder.subscribeBtn = (Button) convertView.findViewById(R.id.subscribe_btn);
convertView.setTag(holder);
}


HashMap<String, String> strategyInfo = mStrategyInfolList.get(position);
Log.e("Num",mStrategyInfolList.size()+"");
HashMap<String, String> stateInfo = mstateList.get(position);
if (strategyInfo != null) {
//数据取得
String userImg = (String) strategyInfo.get(keyString[9]);

//策略名称
String strategy_id = (String) strategyInfo.get(keyString[1]);
//uid
String uid = (String) strategyInfo.get(keyString[2]);
//策略类型
String type = (String) strategyInfo.get(keyString[3]);
//内容
String content = (String) strategyInfo.get(keyString[4]);
//图片
String media = (String) strategyInfo.get(keyString[5]);
//添加时间
String addtime = (String) strategyInfo.get(keyString[6]);
//是否删除
String deleted = (String) strategyInfo.get(keyString[7]);
//发表策略用户名
String user_name = (String) strategyInfo.get(keyString[8]);
//发表策略用户头像
String user_icon = (String) strategyInfo.get(keyString[9]);
//订阅数
String userStrategy_follow = (String) strategyInfo.get(keyString[10]);
//订阅数
String symbol = (String) strategyInfo.get(keyString[11]);
//是否跟随
String followflg = (String) strategyInfo.get(keyString[12]);

//头像 0~9为本地头像,0~9以外是网络头像
if(userImg.equals("0"))
{
holder.userImg.setImageResource(R.drawable.zero);
}
else if(userImg.equals("1"))
{
holder.userImg.setImageResource(R.drawable.one);
}
else if(userImg.equals("2"))
{
holder.userImg.setImageResource(R.drawable.two);
}
else if(userImg.equals("3"))
{
holder.userImg.setImageResource(R.drawable.three);
}
else if(userImg.equals("4"))
{
holder.userImg.setImageResource(R.drawable.four);
}
else if(userImg.equals("5"))
{
holder.userImg.setImageResource(R.drawable.five);
}
else if(userImg.equals("6"))
{
holder.userImg.setImageResource(R.drawable.six);
}
else if(userImg.equals("7"))
{
holder.userImg.setImageResource(R.drawable.seven);
}
else if(userImg.equals("8"))
{
holder.userImg.setImageResource(R.drawable.eight);
}
else if(userImg.equals("9"))
{
holder.userImg.setImageResource(R.drawable.nine);
}
else
{
//从网络获取用户头像
holder.userImg.setTag(userImg);

holder.userImg.setImageResource(R.drawable.zero);
if(userImg!=null && holder.userImg.getTag() != null && holder.userImg.getTag().equals(userImg))
{
imageLoader.DisplayImage("http://"+SharePreOpration.getSharePreStr(mContext, "inkever_Mypref", "server_domain")+"/"+userImg, holder.userImg);
}
}

holder.timeText.setText(Utils.getStrTime(addtime));
holder.strategyTitle.setText(symbol + ":" + content);
holder.strategyName.setText(user_name);
holder.subscribeNum.setText(userStrategy_follow);
Boolean isLogin = SharePreOpration.getSharePreBooleanFalse(mContext, "inkever_Mypref", "isLogin");

if(followflg.equals("true") && isLogin ){
holder.subscribeBtn.setText(mContext.getResources().getString(R.string.subscribe));
holder.subscribeBtn.setTextColor(mContext.getResources().getColor(R.color.gray));
holder.subscribeBtn.setEnabled(false);
Log.i("pos","" + position);
}

//Log.e("huige",content + "," + user_name + "," + userStrategy_follow);
holder.subscribeBtn.setOnTouchListener(new OnMyTouchListener(position));
//holder.subscribeBtn.setOnClickListener(new OnSubscribedClick(position));

}

return convertView;
}




...全文
110 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ThinSnorlax 2016-11-14
  • 打赏
  • 举报
回复
已解决,item中的button状态要设置是否被选中,不选中也需要设置不选中的状态,否则缺省的上面的相同位置的按钮状态一样, 代码如下: if(followflg.equals("true") && isLogin ){ holder.subscribeBtn.setText(mContext.getResources().getString(R.string.subscribe)); holder.subscribeBtn.setTextColor(mContext.getResources().getColor(R.color.gray)); holder.subscribeBtn.setEnabled(false); }else{ holder.subscribeBtn.setText(mContext.getResources().getString(R.string.strategy_subscribe)); holder.subscribeBtn.setTextColor(mContext.getResources().getColor(R.color.blue)); holder.subscribeBtn.setEnabled(true); }

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧