Android 当我单击按钮更改ListView中的textview时,更改了最后一行或另一行textview
我有这样的Costam ListView: 行1Android 当我单击按钮更改ListView中的textview时,更改了最后一行或另一行textview,android,android-layout,listview,Android,Android Layout,Listview,我有这样的Costam ListView: 行1Button1(-)文本视图按钮2(+) 行2Button1(-)文本视图按钮2(+) 第3行按钮1(-)文本视图按钮2(+) 行4Button1(-)文本视图按钮2(+) 第5行按钮1(-)文本视图按钮2(+) 当我尝试在getView中为任何按钮设置单击Listener时,更改了另一行TextView 我单击第2行/按钮2(+),因此文本视图必须++(1到2)或单击第2行/按钮1(-),文本视图必须-(2到1),但第5行中的文本视图更改为或+
Button1(-)文本视图按钮2(+)
行2Button1(-)文本视图按钮2(+)
第3行按钮1(-)文本视图按钮2(+)
行4Button1(-)文本视图按钮2(+)
第5行按钮1(-)文本视图按钮2(+)
当我尝试在getView中为任何按钮设置单击Listener
时,更改了另一行TextView
我单击第2行/按钮2(+)
,因此文本视图
必须++
(1到2)或单击第2行/按钮1(-)
,文本视图
必须-
(2到1),但第5行中的文本视图
更改为
或+
这是我的适配器
public class adap_Mive extends BaseAdapter {
Context contextt;
private LayoutInflater myInflater;
public List<dm_Mive> list;
public adap_Mive(Context context) {
myInflater = LayoutInflater.from(context);
contextt = context;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
public void setData(List<dm_Mive> list) {
this.list = list;
}
public void clearData() {
// clear the data
list.clear();
}
Holder holder = null;
@Override
public View getView(final int position, View convertView, final ViewGroup parent) {
if (convertView == null) {
convertView = myInflater.inflate(R.layout.list_custom_froot, parent, false);
holder = new Holder();
holder.tv_lbl_name = (TextView)convertView.findViewById(R.id.txt_title) ;
holder.tv_lbl_details = (TextView)convertView.findViewById(R.id.txt_weight );
holder.tv_lbl_price = (TextView)convertView.findViewById(R.id.txt_price) ;
holder.txt = (TextView)convertView.findViewById(R.id.txt_meghda r);
holder.tv_img_pic = (ImageView)convertView.findViewById(R.id.img);
holder.btn2 = (ImageButton)convertView.findViewById(R.id.btn_kam );
holder.btn1 = (ImageButton)convertView.findViewById(R.id.btn_zia d);
holder.btn_more = (ImageButton)convertView.findViewById(R.id.btn_mor e);
convertView.setTag(holder);
} else {
holder = (Holder) convertView.getTag();
}
holder.tv_lbl_name.setText ((list.get(position).getname()));
holder.tv_lbl_details.setText ((list.get(position).getdetails()));
holder.tv_lbl_price.setText ((list.get(position).getprice()));
holder.btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
holder.txt.setText("10");
}
});
holder.btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
holder.txt.setText("9");
}
});
String profpic = list.get(position).getbmp();
String Image_Name = null;
String pic[] = profpic.split("/");
for (String item : pic) {
Image_Name = item;
}
File extStore = Environment.getExternalStorageDirectory();
File picDir = new File(extStore, "Froot");
File file = new File(picDir, Image_Name);
String ProfPic = file.toString();
File f = new File(file.toString());
if(f.exists())
{
holder.tv_img_pic.setImageURI (Uri.parse(ProfPic));
}
else
{
Picasso.with(contextt)
.load(profpic)
.into(holder.tv_img_pic);
Mod_Dwonload_File mdf = new Mod_Dwonload_File();
mdf.Download_Adapter_Files(profpic);
}
return convertView;
}
public static class Holder
{
public boolean needInflate;
TextView tv_lbl_name;
TextView tv_lbl_details;
TextView tv_lbl_price;
ImageView tv_img_pic;
TextView txt;
ImageButton btn1;
ImageButton btn2;
ImageButton btn_more;
}
}
公共类适配器扩展了BaseAdapter{
语境;
私人充气机;
公开名单;
公共适配器(上下文){
myInflater=LayoutInflater.from(上下文);
contextt=上下文;
}
@凌驾
public int getCount(){
返回list.size();
}
@凌驾
公共对象getItem(int位置){
返回null;
}
@凌驾
公共长getItemId(int位置){
返回0;
}
公共无效设置数据(列表){
this.list=列表;
}
public void clearData(){
//清除数据
list.clear();
}
Holder=null;
@凌驾
公共视图getView(最终整型位置、视图转换视图、最终视图组父视图){
if(convertView==null){
convertView=myInflater.inflate(R.layout.list\u custom\u froot,parent,false);
保持架=新保持架();
holder.tv\u lbl\u name=(TextView)convertView.findViewById(R.id.txt\u title);
holder.tv\u lbl\u details=(TextView)convertView.findViewById(R.id.txt\u-weight);
holder.tv\u lbl\u price=(TextView)convertView.findViewById(R.id.txt\u price);
holder.txt=(TextView)convertView.findViewById(R.id.txt_meghda R);
holder.tv\u img\u pic=(ImageView)convertView.findViewById(R.id.img);
holder.btn2=(ImageButton)convertView.findViewById(R.id.btn_-kam);
holder.btn1=(ImageButton)convertView.findViewById(R.id.btn_zia d);
holder.btn_more=(ImageButton)convertView.findViewById(R.id.btn_more);
convertView.setTag(支架);
}否则{
holder=(holder)convertView.getTag();
}
holder.tv_lbl_name.setText((list.get(position.getname()));
holder.tv_lbl_details.setText((list.get(position.getdetails());
holder.tv_lbl_price.setText((list.get(position.getprice()));
holder.btn1.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
holder.txt.setText(“10”);
}
});
holder.btn2.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
holder.txt.setText(“9”);
}
});
字符串profpic=list.get(position.getbmp();
字符串Image_Name=null;
字符串pic[]=profpic.split(“/”);
用于(字符串项:pic){
图像名称=项目;
}
文件extStore=Environment.getExternalStorageDirectory();
File picDir=新文件(extStore,“Froot”);
文件=新文件(picDir,图像名称);
字符串ProfPic=file.toString();
文件f=新文件(File.toString());
如果(f.exists())
{
holder.tv_img_pic.setImageURI(Uri.parse(ProfPic));
}
其他的
{
毕加索与(上下文)
.负载(profpic)
.into(holder.tv\u img\u pic);
Mod_Dwonload_File mdf=新Mod_Dwonload_File();
下载适配器文件(profpic);
}
返回视图;
}
公共静态类持有者
{
通货膨胀;
TextView tv_lbl_名称;
TextView电视节目详情;
TextView电视价格;
ImageView电视图片;
文本视图;
图像按钮btn1;
图像按钮btn2;
图像按钮btn_更多;
}
}
holder.txt.setText(“10”);您在这行中给出的语句是什么?如果他有1000个按钮,那么他会将setOnClickListner写入1000次吗?不,这只是您在适配器中使用setonclicklister的一次。已解决,我必须使用getParent而不是getTag | | View pv=(View)View.getParent();TextView txt=(TextView)pv.findviewbyd(R.id.txt_meghdar);txt.setText(“10”);现在我有另一个问题,我可以得到TextView.getText,但不能得到另一个TextView.getText,为空,为什么?holder.txt.getText();
final Holder holder = new Holder();
if (convertView == null) {
convertView = myInflater.inflate(R.layout.list_custom_froot, parent, false);
holder.tv_lbl_name = (TextView)convertView.findViewById(R.id.txt_title) ;
holder.tv_lbl_details = (TextView)convertView.findViewById(R.id.txt_weight );
holder.tv_lbl_price = (TextView)convertView.findViewById(R.id.txt_price) ;
holder.txt = (TextView)convertView.findViewById(R.id.txt_meghda r);
holder.tv_img_pic = (ImageView)convertView.findViewById(R.id.img);
holder.btn2 = (ImageButton)convertView.findViewById(R.id.btn_kam );
holder.btn1 = (ImageButton)convertView.findViewById(R.id.btn_zia d);
holder.btn_more = (ImageButton)convertView.findViewById(R.id.btn_mor e);
convertView.setTag(holder);
} else {
holder = (Holder) convertView.getTag();
}
holder.tv_lbl_name.setText ((list.get(position).getname()));
holder.tv_lbl_details.setText ((list.get(position).getdetails()));
holder.tv_lbl_price.setText ((list.get(position).getprice()));
holder.txt ((list.get(position).gettextvalue)); //create the textvalue string in dm_Mive class nd set value empty
holder.btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int butttonpostion = (Integer) buttonView.getTag();
// String v1= holder.txt .gettext();
String v1=list.get(butttonpostion).gettextvalue);// direct get value to list
dm_Mive dm= new dm_Mive()
dm_Mive.settextvalue(v1);
dm_Mive.setname(list.get(buttonpostion).getname())
..
....
friendlist.set(butttonpostion, dm);
}
});