Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.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 使用SetTag方法选择ListView项 setListAdapter(新的MyAdapter(这个,android.R.layout.simple\u列表项目), R.id.textView1, (字符串[])myArr.toArray(新字符串[]{})); } 类MyAdapter扩展了ArrayAdapter{ 最终整数,其中; 公共MyAdapter(上下文、int资源、, int textViewResourceId,字符串[]字符串){ super(上下文、资源、textViewResourceId、字符串); //TODO自动生成的构造函数存根 } @凌驾 公共视图getView(int位置、视图转换视图、视图组父视图){ int=位置; LayoutFlater充气器=(LayoutFlater)getSystemService(Context.LAYOUT\u充气器\u服务); 视图行=充气机。充气(R.layout.custom_视图,父视图,false); TextView tv=(TextView)row.findViewById(R.id.textView1); ImageView iv=(ImageView)row.findViewById(R.id.imageView1); ToggleButton tb=(ToggleButton)row.findViewById(R.id.toggleButton1); tv.setTag(位置); iv.设置标签(位置); tb.setTag(位置); tv.setText(myArr.get(position.toString()); tb.setOnClickListener(新的OnClickListener(){ @凌驾 公共void onClick(视图v){ if(tb.isChecked()){ which=(整数)tb.getTag(); }否则{ } } }); 返回行; } } }_Java_Android_Android Listview - Fatal编程技术网

Java 使用SetTag方法选择ListView项 setListAdapter(新的MyAdapter(这个,android.R.layout.simple\u列表项目), R.id.textView1, (字符串[])myArr.toArray(新字符串[]{})); } 类MyAdapter扩展了ArrayAdapter{ 最终整数,其中; 公共MyAdapter(上下文、int资源、, int textViewResourceId,字符串[]字符串){ super(上下文、资源、textViewResourceId、字符串); //TODO自动生成的构造函数存根 } @凌驾 公共视图getView(int位置、视图转换视图、视图组父视图){ int=位置; LayoutFlater充气器=(LayoutFlater)getSystemService(Context.LAYOUT\u充气器\u服务); 视图行=充气机。充气(R.layout.custom_视图,父视图,false); TextView tv=(TextView)row.findViewById(R.id.textView1); ImageView iv=(ImageView)row.findViewById(R.id.imageView1); ToggleButton tb=(ToggleButton)row.findViewById(R.id.toggleButton1); tv.setTag(位置); iv.设置标签(位置); tb.setTag(位置); tv.setText(myArr.get(position.toString()); tb.setOnClickListener(新的OnClickListener(){ @凌驾 公共void onClick(视图v){ if(tb.isChecked()){ which=(整数)tb.getTag(); }否则{ } } }); 返回行; } } }

Java 使用SetTag方法选择ListView项 setListAdapter(新的MyAdapter(这个,android.R.layout.simple\u列表项目), R.id.textView1, (字符串[])myArr.toArray(新字符串[]{})); } 类MyAdapter扩展了ArrayAdapter{ 最终整数,其中; 公共MyAdapter(上下文、int资源、, int textViewResourceId,字符串[]字符串){ super(上下文、资源、textViewResourceId、字符串); //TODO自动生成的构造函数存根 } @凌驾 公共视图getView(int位置、视图转换视图、视图组父视图){ int=位置; LayoutFlater充气器=(LayoutFlater)getSystemService(Context.LAYOUT\u充气器\u服务); 视图行=充气机。充气(R.layout.custom_视图,父视图,false); TextView tv=(TextView)row.findViewById(R.id.textView1); ImageView iv=(ImageView)row.findViewById(R.id.imageView1); ToggleButton tb=(ToggleButton)row.findViewById(R.id.toggleButton1); tv.setTag(位置); iv.设置标签(位置); tb.setTag(位置); tv.setText(myArr.get(position.toString()); tb.setOnClickListener(新的OnClickListener(){ @凌驾 公共void onClick(视图v){ if(tb.isChecked()){ which=(整数)tb.getTag(); }否则{ } } }); 返回行; } } },java,android,android-listview,Java,Android,Android Listview,您好,我正在尝试使用setTag视图方法来检测按下了哪些项。我的布局由一个列表组成,每行包含一个文本字段、一个切换按钮和一个图像视图。我想更改包含按下按钮的行的图像。我已经走了这么远,我被困在如何继续的问题上。我能得到一些帮助吗?你可以简单地将位置传递给你的getView(最终int位置,视图转换视图,视图组父视图)。只需将其设置为最终版本并直接访问它,而无需进行标记 但是,为了处理android提供的可滚动视图,您应该使用视图标记 setListAdapter(new MyAd

您好,我正在尝试使用setTag视图方法来检测按下了哪些项。我的布局由一个列表组成,每行包含一个文本字段、一个切换按钮和一个图像视图。我想更改包含按下按钮的行的图像。我已经走了这么远,我被困在如何继续的问题上。我能得到一些帮助吗?

你可以简单地将位置传递给你的
getView(最终int位置,视图转换视图,视图组父视图)
。只需将其设置为最终版本并直接访问它,而无需进行标记

但是,为了处理android提供的可滚动视图,您应该使用视图标记

        setListAdapter(new MyAdapter(this, android.R.layout.simple_list_item_1,
                R.id.textView1,
                (String[]) myArr.toArray(new String[]{})));
    }

         class MyAdapter extends ArrayAdapter<String>{
                             final int which;

                public MyAdapter(Context context, int resource,
                    int textViewResourceId, String[] string) {
                    super(context, resource, textViewResourceId, string);
                    // TODO Auto-generated constructor stub
                }

                @Override
                public View getView(int position, View convertView, ViewGroup parent) {
                    int which=position;
                    LayoutInflater inflater =  (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                    View row = inflater.inflate(R.layout.custom_view, parent,false);            
                    TextView tv = (TextView) row.findViewById(R.id.textView1);
                    ImageView iv = (ImageView) row.findViewById(R.id.imageView1);
                    ToggleButton tb = (ToggleButton) row.findViewById(R.id.toggleButton1);

                    tv.setTag(position);
                    iv.setTag(position);
                    tb.setTag(position);

                    tv.setText(myArr.get(position).toString());

                    tb.setOnClickListener(new OnClickListener() {



                    @Override
                    public void onClick(View v) {
                        if(tb.isChecked()){
                                    which=(Integer) tb.getTag();

                        }else{

                        }


                    }
                    });

                    return row;
                }
        }

}
class MyAdapter扩展了ArrayAdapter{
最终整数,其中;
ArrayList mListImageStates=新的ArrayList();
公共MyAdapter(上下文、int资源、,
int textViewResourceId,字符串[]字符串){
super(上下文、资源、textViewResourceId、字符串);

对于(int i=0;i如何根据位置更改imageview的内容setimage方法只接受drawable参数,不接受位置然后,必须留下一个包含listview每行状态的布尔数组列表。在该视图上的onClick中,更改布尔值,然后调用notifyDataSetChanged()。在适配器中进行以下if(statusArraylist.get(position))并基于此值更改您的imageviewmmm好的,我迷路了这对我来说有点新鲜:D我可能应该去买本书没关系。我会编辑我的答案:)哦,谢谢:D我会处理这个问题
class MyAdapter extends ArrayAdapter<String>{
                             final int which;
ArrayList<Boolean> mListImageStates = new ArrayList<Boolean>();
 public MyAdapter(Context context, int resource,
   int textViewResourceId, String[] string) {
   super(context, resource, textViewResourceId, string);
    for(int i = 0; i<string.length;i++)
    {
        mListImageStates.add(new Boolean(false));
    }
 }
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int which=position;
LayoutInflater inflater =  (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

 ChildViewHolder holder = new ChildViewHolder();
 if(convertView == null){
      convertView = inflater.inflate(R.layout.custom_view, parent,false);
      holder.mTv = (TextView) row.findViewById(R.id.textView1);
      holder.mIv = (ImageView) row.findViewById(R.id.imageView1);
      holder.mTb = (ToggleButton) row.findViewById(R.id.toggleButton1);
      convertView.setTag(holder)}
 else
 {
      holder = (ChildViewHolder) convertView.getTag();
 }
 holder.mTv.setText(myArr.get(position).toString());

  holder.mTb.setOnClickListener(new OnClickListener() {
  @Override
  public void onClick(View v) {        
         boolean listState = mListImageStates.get(position);
         mListImageStates.set(position,new Boolean(!listState));
         notifyDataSetChanged();

}});

if(mListImageStates.get(position) == false)
{
//TODO
}else
{
//TODO
}

   return convertView;
}
class ChildViewHolder
{
    public TextView mTv;
    public ImageView mIv;
    public ToggleButton mTb;
}