Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 列表视图中onclick方法的奇怪行为_Java_Android_Listview_Onclick - Fatal编程技术网

Java 列表视图中onclick方法的奇怪行为

Java 列表视图中onclick方法的奇怪行为,java,android,listview,onclick,Java,Android,Listview,Onclick,我经历了以下非常奇怪的情况。我有一个列表视图,每个项目中都有一个按钮。按钮所做的一件事是更改按钮文本的颜色和大小。当我按下按钮时,出现下图所述的情况。如果我按下第一个项目中的按钮,该方法将对第一个项目和屏幕上不可见的第一个项目执行。类似地,如果我对第二项执行此操作,则第二项在屏幕上不可见时也会发生同样的情况。我真的对此感到困惑。我尝试将onClickListener添加到适配器中,而不是单独使用该方法,我还尝试使用b.setTextSize()而不是在listview中查找按钮。日志记录只返回我

我经历了以下非常奇怪的情况。我有一个列表视图,每个项目中都有一个按钮。按钮所做的一件事是更改按钮文本的颜色和大小。当我按下按钮时,出现下图所述的情况。如果我按下第一个项目中的按钮,该方法将对第一个项目和屏幕上不可见的第一个项目执行。类似地,如果我对第二项执行此操作,则第二项在屏幕上不可见时也会发生同样的情况。我真的对此感到困惑。我尝试将onClickListener添加到适配器中,而不是单独使用该方法,我还尝试使用
b.setTextSize()
而不是在listview中查找按钮。日志记录只返回我单击的项目,一切看起来都很好,但事实并非如此

以下是适配器和支架的列表:

class视图持有者{
TextView leaguetxt;
文本视图日期文本;
TextView teamstxt;
文本视图;
文本视图betid;
文本视图类型;
文本视图注释文本;
按钮oddsbtn;
线性布局项目;
视图支架(视图v){
leaguetxt=(TextView)v.findViewById(R.id.leaguetxt);
datetxt=(TextView)v.findviewbyd(R.id.datetxt);
teamstxt=(TextView)v.findViewById(R.id.teamstxt);
bettxt=(TextView)v.findViewById(R.id.bettxt);
betid=(TextView)v.findViewById(R.id.gid);
typetxt=(TextView)v.findViewById(R.id.difficultytxt);
commentstxt=(TextView)v.findviewbyd(R.id.commenttxt);
oddsbtn=(按钮)v.findviewbyd(R.id.oddsbutton);
项目=(线性布局)v.findViewById(R.id.item);
}
}
私有类MyListAdapter扩展了ArrayAdapter{
公共MyListAdapter(){
super(所有游戏的持续性、本、右布局、列表项、卷轴);
}
公共MyListAdapter(ArrayList tomee){
super(所有游戏的持续性、本、右布局、列表项、卷轴);
TOME=TOME;//在适配器中声明TOME,不要使用静态
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图项视图=转换视图;
TipDisplayer currentwriter=tomee.get(位置);
ViewHolder=null;
如果(itemView==null){
itemView=GetLayoutFlater()。充气(R.layout.list\u项,父项,false);
holder=新的视图holder(itemView);
itemView.setTag(支架);
日志d(“设置”、“新持有人”);
}
否则{
holder=(ViewHolder)itemView.getTag();
Log.d(“plzwork”,id.toString());
如果(!ids.contains(Integer.parseInt(holder.betid.getText().toString())){
//holder.oddsbtn.setTextColor(Color.parseColor(“#000000”);
//oddsbtn.setTextSize支架(18);
Log.d(“不包含”、“不包含”);
Log.d(“betid”,holder.betid.getText().toString());
Log.d(“bettxt”,holder.bettxt.getText().toString());
}
否则{
日志d(“回收包含”、“包含”);
//holder.oddsbtn.setTextColor(Color.parseColor(“#EB102E”);
//oddsbtn.setTextSize支架(20);
Log.d(“betid”,holder.betid.getText().toString());
Log.d(“bettxt”,holder.bettxt.getText().toString());
}
日志d(“回收”,“回收”);
}
holder.item.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
线性布局布局=(线性布局)v;
按钮b=(按钮)布局。findViewById(R.id.oddsbutton);
ListView ListView=(ListView)layout.getParent();
最终int位置=listView.getPositionForView(listView);
String buttontext=b.getText().toString();
按钮lastchance=(按钮)布局。findViewById(R.id.oddsbutton);
TextView betidtextbox=(TextView)layout.findViewById(R.id.gid);
字符串betid=betidtextbox.getText().toString();
TipDisplayer currentwriter=tomee.get(位置+1);
Log.d(“plzworkkkk”,newset.toString());
if(ids.contains(Integer.parseInt(betid))){
remove(新整数(Integer.parseInt(betid));
Log.d(“plzworkkkk”,newBet.toString());
currentwriter.toggleHighlighted();
//选中突出显示(布局);
Log.d(“获取赔率”,按钮文本);
选择=“主页”;
TextView teamss=(TextView)layout.findviewbyd(R.id.teamstxt);
字符串teams=teamss.getText().toString();
Log.d(“团队”,团队);
TextView bet=(TextView)layout.findviewbyd(R.id.bettxt);
字符串bettxt=bet.getText().toString();
Log.d(“btxttext”,bettxt);
newBet.generateODDS测试(betid,buttontext,false,teams,selection,bettxt);
双纽比数=newBet.calculateods();
TextView mybetofrities=(TextView)findViewById(R.id.bettingods);
TextView potentialWinnings=(TextView)findViewById(R.id.potentialWinnings);
mybetorbits.setText(“@”+String.format(“%.2f”,neworbits)+“/1”);
EditText mEdit=(EditText)findViewById(R.id.editText2);
如果(我)
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    this.toggleHighlighted();
    myAdapter.notifyDataSetChanged();
}
public void toggleHighlighted() {  
  highlighed = !highlighted; 
}
 if (currentwriter.isHighlighed()) { 
    change color code here 
 }
@Override

public int getViewTypeCount() {                 

return getCount();
}

@Override
public int getItemViewType(int position) {

return position;
}