如何获取自定义ListView的选定行的子级的rowID? [英] How to get rowID of custom ListView's selected row's child?

查看:67
本文介绍了如何获取自定义ListView的选定行的子级的rowID?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个带有4个textViews和2个按钮的自定义列表视图,我正在通过数据库进行填充,



电视名称|电视电子邮件|电视号码|电视ID(数据库主键,设置为不可见)| ButtonEDIT | ButtonDelete。



我成功地从数据库中获取了ID,并将其设置为主键。



现在我想做的是,当我按下ButtonEDIT时,它应该吐出一条类似
的消息为ID选择编辑: + TVID.getText()。toString(),所以基本上我想显示的是存储在TVID(即我的数据库ID)中。



但是当我尝试执行此操作时,它仅显示不同行按钮的firstID(0),请

下面的Am链接代码



自定义ListView适配器:

 包com.iwill.Database_add_display; 

import java.io.ObjectOutputStream.PutField;
import java.util.ArrayList;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

公共类MyAdapter扩展了BaseAdapter
{

private ArrayList< userdetails>数据;
private static LayoutInflater minflater = null;
private int [] userArray;
public MyAdapter(Context context,ArrayList< userdetails> results)
{
data = results;
minflater = LayoutInflater.from(上下文);
}
@Override
public int getCount()
{
return data.size();
}

@Override
public Object getItem(int position)
{
return data.get(position);
}

@Override
public long getItemId(int position)
{
返回位置;
}

public int getUserArray(int position){
return userArray [position];
}


@Override
public View getView(final int position,View convertView,ViewGroup parent)
{
ViewHolder持有者;
if(convertView == null)
{
convertView = minflater.inflate(R.layout.row,null);
持有人= new ViewHolder();
holder.tvname =(TextView)convertView.findViewById(R.id.textname);
holder.tvemail =(TextView)convertView.findViewById(R.id.textemail);
holder.tvno =(TextView)convertView.findViewById(R.id.textno);
holder.tvID =(TextView)convertView.findViewById(R.id.textID);
holder.b1 =(按钮)convertView.findViewById(R.id.btnEdit);
holder.b2 =(按钮)convertView.findViewById(R.id.btnDelete);

//convertView.setTag(holder);
convertView.setTag(holder);
}
其他
{
持有人=(ViewHolder)convertView.getTag();
}
holder.tvname.setText(data.get(position).getName());
holder.tvemail.setText(data.get(position).getMail());
holder.tvno.setText(data.get(position).getNo());
holder.tvID.setText(String.valueOf(data.get(position).getID()));
return convertView;
}
静态类ViewHolder
{
TextView tvname;
TextView tvemail;
TextView tvno;
按钮b1;
按钮b2;
TextView tvID;
}
}

ListActivity:

 包com.iwill.Database_add_display; 

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

公共类viewnameactivity扩展了活动
{
ArrayList< userdetails> mylist = new ArrayList< userdetails>();

私人DatabaseHelper mDbHelper;
私人SQLiteDatabase mDb;
ListView listView;
MyAdapter适配器;
int pos;
@Override
protected void onCreate(Bundle savedInstanceState)
{
// TODO自动生成的方法存根
super.onCreate(savedInstanceState);
setContentView(R.layout.viewname);


mDbHelper =新的DatabaseHelper(this);

最终列表< userdetails>列表= mDbHelper.selectAll();
for(int i = 0; i< List.size(); i ++)
{
//Log.i(数据列表....,List.get (一世));
}

for(int j = 0; j< List.size(); j ++)
{
mylist.add(List.get(j) );
Log.i( List View:,mylist.get(j).toString());
}

listView =(ListView)findViewById(R.id.listView);
adapter = new MyAdapter(this,mylist);
listView.setAdapter(adapter);
adapter.notifyDataSetChanged();

listView.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent,View v,int position,long id){

Toast.makeText(viewnameactivity.this, ID的编辑按钮: + adapter.getUserArray(position)+已选择。,
Toast.LENGTH_SHORT).show();

pos = adapter.getUserArray(position);
}
});

mDbHelper.close();

Button btnBack =(Button)findViewById(R.id.btnBack);
btnBack.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View v){

Intent i = new Intent(viewnameactivity .this,MainActivity.class);
startActivity(i);

}
});

/ *按钮btnEdit =(Button)findViewById(R.id.btnEdit);
btnEdit.setOnClickListener(new OnClickListener(){

// TextView strID =(TextView)findViewById(R.id.textID);
// long lngID = Long.parseLong (strID.getText()。toString());

@Override
public void onClick(View v){
Toast.makeText(viewnameactivity.this, Edit button of ID:已选中。,
Toast.LENGTH_SHORT).show();

}
});

Button btnDelete =(Button)findViewById(R.id.btndelete);

btnDelete.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View v){

Toast.makeText (viewnameactivity.this,删除ID的按钮:已选中。,
Toast.LENGTH_SHORT).show();

}
}); * /


}
public void OnClickEdit(View v){


// TextView strID =(TextView)this.findViewById(R.id.textID );
// long lngID = Long.parseLong(strID.getText()。toString());


Toast.makeText(viewnameactivity.this,编辑ID的按钮: + pos +已选中。,
Toast.LENGTH_SHORT).show();

}

public void OnClickDelete(View v){
TextView strID =(TextView)findViewById(R.id.textID);
long lngID = Long.parseLong(strID.getText()。toString());
Toast.makeText(viewnameactivity.this,删除ID的按钮: + lngID + selected。,
Toast.LENGTH_SHORT).show();
}
}

DatabaseOpenHelper类:

 包com.iwill.Database_add_display; 

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

公共类DatabaseHelper
{
public static final String KEY_NAME = NAME;
public static final String KEY_MAIL = EMAIL;
public static final String KEY_NO =否;
public static final String KEY_ID = ID;
private static final String DATABASE_NAME = info.db;
private static final int DATABASE_VERSION = 1;
private static final String TABLE_NAME =用户;

私有静态字符串DB_PATH = /data/data/com.iwill.Database_add_display;
private static String DB_NAME = info.db;

私有静态上下文上下文;
私有静态SQLiteDatabase db;
private static final String TAG = MEDIA;
public DatabaseHelper(Context context)
{
this.context =上下文;
OpenHelper openHelper =新的OpenHelper(this.context);
this.db = openHelper.getWritableDatabase();
//this.insertStmt = this.db.compileStatement(INSERT);
}
public long insert(String uname,String mail,String no)
{

ContentValues CV = new ContentValues();
CV.put(KEY_NAME,uname);
CV.put(KEY_MAIL,mail);
CV.put(KEY_NO,no);
long rawId = db.insert(TABLE_NAME,null,CV);
return rawId;
}
public void update(long _ID,String updateuname,String updatemail,String updateno)
{
Log.i( tag, _ ID + _ ID);
ContentValues cvupdate = new ContentValues();
cvupdate.put(KEY_NAME,updateuname);
cvupdate.put(KEY_MAIL,updatemail);
cvupdate.put(KEY_NO,updateno);
db.update(TABLE_NAME,cvupdate, _id + =?,新的String [] {String.valueOf(_ID)});
Log.i( tag,项目更新的数据库助手);
}

public void delete(long _ID)
{
this.db.delete(TABLE_NAME, _id + =?,新String [] {String.valueOf(_ID)});
Log.i( tag,项目已删除);
}

公共列表< userdetails> selectAll(){
List< userdetails> list = new ArrayList< userdetails>();
游标游标= this.db.query(TABLE_NAME,new String [] { _id, NAME, EMAIL, NO},
null,null,null,null, _id asc);
if(cursor.moveToFirst()){
do {
userdetails usd = new userdetails();
usd.setName(cursor.getString(1));
usd.setMail(cursor.getString(2));
usd.setNo(cursor.getString(3));
usd.setID(cursor.getLong(0));
list.add(usd);

}而(cursor.moveToNext());
}
if(cursor!= null&&!cursor.isClosed()){
cursor.close();
}
退货清单;
}

public void close(){
db.close();
}

public List< String> selectAllid(){
List< String> list = new ArrayList< String>();
游标游标= this.db.query(TABLE_NAME,new String [] { _id, NAME},
null,null,null,null, _id asc);
if(cursor.moveToFirst()){
do {
//list.add(cursor.getInt(0)+ + cursor.getString(1));
list.add(cursor.getString(0));
Log.i(列表0(id)....,cursor.getString(0));
Log.i(列表1(URL)....,cursor.getString(1));

}而(cursor.moveToNext());
}
if(cursor!= null&&!cursor.isClosed()){
cursor.close();
}
退货清单;
}

//测试

私有静态类OpenHelper扩展了SQLiteOpenHelper
{

public OpenHelper(Context context)
{
super(上下文,DATABASE_NAME,空,DATABASE_VERSION);
// TODO自动生成的构造函数存根
}

@Override
public void onCreate(SQLiteDatabase db)
{
// TODO自动生成的方法存根
String str =如果不存在用户,则创建表(_id INTEGER PRIMARY KEY AUTOINCREMENT,名称文本,电子邮件文本,无文本);
db.execSQL(str);
}

private boolean checkDatabase(){
SQLiteDatabase checkDB = null;
try {
String myPath = DB_PATH + DB_NAME;
checkDB = SQLiteDatabase.openDatabase(myPath,null,SQLiteDatabase.OPEN_READWRITE);
} catch(SQLiteException e){
//数据库尚不存在。
}

if(checkDB!= null){
checkDB.close();
}
返回checkDB!= null?真假;

}
public void createNewDatabase(){
InputStream assetDB = null;
try {
assetDB = context.getAssets()。open(DB_NAME);
OutputStream dbOut = new FileOutputStream(DB_PATH + DB_NAME);

byte [] buffer = new byte [1024];
int长度;
while(((length = assetDB.read(buffer))> 0){
dbOut.write(buffer,0,length);
}

dbOut.flush();
dbOut.close();
assetDB.close();
Log.i(已创建新数据库...,已创建新数据库...);
} catch(IOException e){
Log.e(无法创建新数据库...,无法创建新数据库...);
e.printStackTrace();
}
}
@Override
公共同步void close(){
if(db!= null){
db.close();
super.close();
}
}
@Override
public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion)
{
//Log.w(\"Example ,升级数据库,这将删除表并重新创建。);
db.execSQL(如果存在则删除表 + TABLE_NAME);
onCreate(db);
}
}

}

Am kinda初学者,我们将不胜感激。 (:

解决方案

尝试将其添加到适配器:

 公共类MyAdapter扩展了BaseAdapter 
{
public static HashMap< Integer,String> myList = new HashMap< Integer,String>();
...
@Override
public View getView(final int position,View convertView,ViewGroup parent)
{
...
myList.put(位置,String.valueOf(数据.get(position).getID()));

return convertView;
}
...
}

现在参加活动,

 公共课viewnameactivity扩展了活动
{
...
listView.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?>父视图v,int position,long id){
pos = adapter.getUserArray(position);

字符串TVID = MyAdapter.myList.get(position); //这会给您每个列表项tvid
}
});
...
}


I've a custom list view with 4 textViews and 2 buttons,which i am filling up via database,

TV NAME | TV EMAIL | TV NO | TV ID(database primary key,set invisible) | ButtonEDIT | ButtonDelete.

I successfully got the id from the database,which is set as primary key.

Now what i want to do is,when i PRESS ButtonEDIT,it should toast a message something like "Edit selected for ID :" + TVID.getText().toString(),so basically i want to display the value which is stored in the TVID(i.e. my database id).

But when i am trying to do it,it only displays the firstID (0) for buttons of different rows,please do help asap.

Am linking code below

Custom ListView Adapter :

package com.iwill.Database_add_display;

import java.io.ObjectOutputStream.PutField;
import java.util.ArrayList;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class MyAdapter extends BaseAdapter
{

        private ArrayList<userdetails> data;
        private static LayoutInflater minflater=null;
        private int[] userArray;
        public MyAdapter(Context context,ArrayList<userdetails> results)
        {
            data = results;
            minflater = LayoutInflater.from(context);
        }
        @Override
        public int getCount() 
        {
              return data.size();
        }

        @Override
        public Object getItem(int position) 
        {
            return data.get(position);
        }

        @Override
        public long getItemId(int position) 
        {
             return position;
        }

        public int getUserArray(int position){
            return userArray[position];
        }


        @Override
        public View getView(final int position, View convertView, ViewGroup parent) 
        {
            ViewHolder holder;
              if (convertView == null) 
              {
                   convertView = minflater.inflate(R.layout.row, null);
                   holder = new ViewHolder();
                   holder.tvname = (TextView) convertView.findViewById(R.id.textname);
                   holder.tvemail = (TextView) convertView.findViewById(R.id.textemail);
                   holder.tvno = (TextView) convertView.findViewById(R.id.textno);
                   holder.tvID = (TextView)convertView.findViewById(R.id.textID);                  
                   holder.b1 = (Button) convertView.findViewById(R.id.btnEdit);
                   holder.b2 = (Button) convertView.findViewById(R.id.btnDelete);

                   //convertView.setTag(holder);
                   convertView.setTag(holder);
              } 
              else 
              {
                  holder = (ViewHolder) convertView.getTag();
              }
              holder.tvname.setText(data.get(position).getName());
              holder.tvemail.setText(data.get(position).getMail());
              holder.tvno.setText(data.get(position).getNo());
              holder.tvID.setText(String.valueOf(data.get(position).getID()));
              return convertView;
        }
        static class ViewHolder 
        {
              TextView tvname;
              TextView tvemail;
              TextView tvno;
              Button b1;
              Button b2;
              TextView tvID;
             }
}

ListActivity :

package com.iwill.Database_add_display;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class viewnameactivity extends Activity 
{
    ArrayList<userdetails> mylist = new ArrayList<userdetails>();

    private DatabaseHelper mDbHelper;
    private SQLiteDatabase mDb;
    ListView listView;
    MyAdapter adapter;
    int pos;
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.viewname);


        mDbHelper = new DatabaseHelper(this);

        final List<userdetails> List = mDbHelper.selectAll();
            for (int i = 0; i < List.size(); i++) 
        {
            //Log.i("List of Data....", List.get(i));
        }

        for (int j = 0; j < List.size(); j++) 
        { 
            mylist.add(List.get(j));
            Log.i("List View :", mylist.get(j).toString());
        }

        listView = (ListView)findViewById(R.id.listView);
        adapter = new MyAdapter(this,mylist);
        listView.setAdapter(adapter);
        adapter.notifyDataSetChanged();

        listView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent,View v,int position,long id) {

                Toast.makeText(viewnameactivity.this,"Edit button of ID : "+ adapter.getUserArray(position)+" selected.",
                        Toast.LENGTH_SHORT).show();

                pos = adapter.getUserArray(position);
            }
        });

        mDbHelper.close();   

    Button btnBack = (Button)findViewById(R.id.btnBack);
    btnBack.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            Intent i = new Intent(viewnameactivity.this,MainActivity.class);
            startActivity(i);

        }
    });

/*  Button btnEdit = (Button)findViewById(R.id.btnEdit);
    btnEdit.setOnClickListener(new OnClickListener() {

        //TextView strID = (TextView)findViewById(R.id.textID);
        //long lngID = Long.parseLong(strID.getText().toString());

        @Override
        public void onClick(View v) {
            Toast.makeText(viewnameactivity.this,"Edit button of ID :  selected.",
                    Toast.LENGTH_SHORT).show();

        }
    });

    Button btnDelete = (Button)findViewById(R.id.btndelete);

    btnDelete.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            Toast.makeText(viewnameactivity.this,"Delete button of ID :  selected.",
                    Toast.LENGTH_SHORT).show();             

        }
    });*/


    }
    public void OnClickEdit(View v){


        //TextView strID = (TextView)this.findViewById(R.id.textID);
        //long lngID = Long.parseLong(strID.getText().toString());


        Toast.makeText(viewnameactivity.this,"Edit button of ID : "+ pos +" selected.",
                Toast.LENGTH_SHORT).show();

    }

    public void OnClickDelete(View v){
        TextView strID = (TextView)findViewById(R.id.textID);
        long lngID = Long.parseLong(strID.getText().toString());        
        Toast.makeText(viewnameactivity.this,"Delete button of ID :"+ lngID + "selected.",
                Toast.LENGTH_SHORT).show(); 
    }
}

DatabaseOpenHelper Class :

package com.iwill.Database_add_display;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class DatabaseHelper 
{
    public static final String KEY_NAME = "NAME";
    public static final String KEY_MAIL = "EMAIL";
    public static final String KEY_NO ="NO";
    public static final String KEY_ID = "ID";
    private static final String DATABASE_NAME = "info.db";
    private static final int DATABASE_VERSION = 1;
    private static final String TABLE_NAME = "user";

    private static String DB_PATH = "/data/data/com.iwill.Database_add_display";   
    private static String DB_NAME = "info.db";

    private static Context context;
    private static SQLiteDatabase db;
    private static final String TAG = "MEDIA";
    public DatabaseHelper(Context context) 
    {
        this.context = context;
        OpenHelper openHelper = new OpenHelper(this.context);
        this.db = openHelper.getWritableDatabase();
        //this.insertStmt = this.db.compileStatement(INSERT);
    }
    public long insert(String uname,String mail,String no)
    {

        ContentValues CV = new ContentValues();
        CV.put(KEY_NAME, uname);
        CV.put(KEY_MAIL , mail);
        CV.put(KEY_NO, no);
        long rawId =  db.insert(TABLE_NAME, null, CV);
        return rawId;
    }
    public void update(long _ID,String updateuname,String updatemail,String updateno)
    {
        Log.i("tag","_ID"+_ID);
        ContentValues cvupdate=new ContentValues();
        cvupdate.put(KEY_NAME,updateuname);
        cvupdate.put(KEY_MAIL, updatemail);
        cvupdate.put(KEY_NO, updateno);
        db.update(TABLE_NAME, cvupdate, "_id"+" = ?",new String[]{String.valueOf(_ID)});
        Log.i("tag", "Item Updated Database Helper");
    }

    public void delete(long _ID)
       {   
           this.db.delete(TABLE_NAME, "_id"+" = ?", new String[]{String.valueOf(_ID)});
           Log.i("tag", "Item deleted");
       }

     public List<userdetails> selectAll(){
         List<userdetails> list = new ArrayList<userdetails>();
         Cursor cursor = this.db.query(TABLE_NAME, new String[] {"_id", "NAME", "EMAIL", "NO"},
                 null, null, null, null, "_id asc");
         if(cursor.moveToFirst()){
             do {
                   userdetails usd= new userdetails();
                   usd.setName(cursor.getString(1));
                   usd.setMail(cursor.getString(2));
                   usd.setNo(cursor.getString(3));
                   usd.setID(cursor.getLong(0));
                   list.add(usd);

             } while (cursor.moveToNext());
         }
         if (cursor != null && !cursor.isClosed()) {
             cursor.close();
          }
         return list;
     } 

     public void close(){
            db.close();
        } 

     public List<String> selectAllid(){
         List<String> list = new ArrayList<String>();
         Cursor cursor = this.db.query(TABLE_NAME, new String[] {"_id", "NAME"},
                 null, null, null, null, "_id asc");
         if(cursor.moveToFirst()){
             do {
                   //list.add(cursor.getInt(0) + " "+cursor.getString(1));  
                   list.add(cursor.getString(0));
                   Log.i("List 0 (id)....", cursor.getString(0));
                   Log.i("List 1 (URL)....", cursor.getString(1));

             } while (cursor.moveToNext());
         }
         if (cursor != null && !cursor.isClosed()) {
             cursor.close();
          }
         return list;
     } 

     // TESTING

    private static class OpenHelper extends SQLiteOpenHelper
    {

        public OpenHelper(Context context) 
        {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
            // TODO Auto-generated constructor stub
        }

        @Override
        public void onCreate(SQLiteDatabase db) 
        {
            // TODO Auto-generated method stub
            String str = "CREATE TABLE IF NOT EXISTS user(_id INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT,EMAIL TEXT,NO TEXT)";
            db.execSQL(str);            
        }

        private boolean checkDatabase(){
            SQLiteDatabase checkDB = null;
            try{
                String myPath = DB_PATH + DB_NAME;
                checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE);  
            }catch(SQLiteException e){
                //database does't exist yet.
            }

            if(checkDB != null){
                checkDB.close();
            }
            return checkDB != null ? true : false;

        }
        public void createNewDatabase() {
              InputStream assetsDB = null;
              try {
                  assetsDB = context.getAssets().open(DB_NAME);
                  OutputStream dbOut = new FileOutputStream(DB_PATH + DB_NAME);

                  byte[] buffer = new byte[1024];
                  int length;
                  while ((length = assetsDB.read(buffer)) > 0) {
                      dbOut.write(buffer, 0, length);
                  }

                  dbOut.flush();
                  dbOut.close();
                  assetsDB.close();
                  Log.i("New Database created.......", "New database created...");
              } catch (IOException e) {
                  Log.e("Could not create new database...", "Could not create new database...");
                  e.printStackTrace();
              }
       }
        @Override
        public synchronized void close() {
            if(db != null){
                db.close();
            super.close();
            }   
        }
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
        {
             //Log.w("Example", "Upgrading database, this will drop tables and recreate.");
             db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
             onCreate(db);
        }
    }

}

Am kinda beginner and any help would be really appreciated. (:

解决方案

Try adding this to your adapter:

public class MyAdapter extends BaseAdapter
{
   public static HashMap<Integer,String> myList=new HashMap<Integer,String>();
   ...
   @Override
   public View getView(final int position, View convertView, ViewGroup parent) 
   {
      ...
      myList.put(position,String.valueOf(data.get(position).getID()));     

      return convertView;
   }      
   ...
}

Now in your activity,

public class viewnameactivity extends Activity 
{
   ...
   listView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent,View v,int position,long id) {                       
                pos = adapter.getUserArray(position);

                String TVID=MyAdapter.myList.get(position); // this will give you tvid for each listitem
            }
   });
   ...
}

这篇关于如何获取自定义ListView的选定行的子级的rowID?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆