Android 从baseadapter传递项目id
在这里,我遇到了一个关于代码的简单问题,如何从基本适配器获取项目id 在这里,我从活动中调用了适配器:Android 从baseadapter传递项目id,android,android-activity,baseadapter,Android,Android Activity,Baseadapter,在这里,我遇到了一个关于代码的简单问题,如何从基本适配器获取项目id 在这里,我从活动中调用了适配器: adapter = new sampleadapter(screen.this,imageIds); listview.setAdapter(adapter); 适配器类: public class sampleadapter extends BaseAdapter { public sampleadapter(screen ListViewActivity,int
adapter = new sampleadapter(screen.this,imageIds);
listview.setAdapter(adapter);
适配器类:
public class sampleadapter extends BaseAdapter {
public sampleadapter(screen ListViewActivity,int[] imageIds) {
// TODO Auto-generated constructor stub
}
public int getCount() {
return imageIds.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
vi=convertView;
vi = LayoutInflater.from(parent.getContext()).inflate(R.layout.explorescreen, null);
Holder.images=(ImageView) vi.findViewById(R.id.image);
Holder.images.setImageResource(imageIds[position]);
vi.setTag(ViewHolder);
Holder = (ViewHolder) vi.getTag();
return vi;
}
};
public interface MyItemFoundListener{
public void itemFound(int resourceId);
}
在这里:
我需要将imageIds[position]
的值传递给我的活动我怎么能这样做
有人能帮我吗,@提前谢谢 您的getItem和getItemID方法不正确 GetItem应该返回一个数组成员。不是数组索引 GetItemID应该使用getitem,然后通过返回的成员的getter返回ID 您还需要实现HassTableId,以便在适配器上返回true
然后,使用适配器的ListView上附加的任何setItemClickListener实现都会为您返回对象id。您的getItem和getItemID方法不正确 GetItem应该返回一个数组成员。不是数组索引 GetItemID应该使用getitem,然后通过返回的成员的getter返回ID 您还需要实现HassTableId,以便在适配器上返回true 然后,使用适配器的ListView上附加的任何setItemClickListener实现都会为您返回对象id。在适配器getView()方法中添加以下行:
holder.img_p.setOnClickListener(mOnTitleClickListener_image);
在您的课堂上输入以下代码:
public OnClickListener mOnTitleClickListener_image = new OnClickListener() {
public void onClick(View v) {
final int position = listv.getPositionForView((View) v.getParent());
Intent i = new Intent(Activity.this, nextactivity.class);
i.putExtra("position",""+position);
startActivity(i);
}
};
在onCreate()的下一个活动中:
以上代码仅适用于您可以为不同视图创建的图像。有关更多详细信息,请参阅:
你的下一个活动
public class NextActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String extras = getIntent().getStringExtra("position");
// your position is below
int pos = Integet.parseInteget(extras);
Log.e("position-->",""+pos);
// now you can use this position any where in your class
}
}
在适配器getView()方法中添加以下行:
holder.img_p.setOnClickListener(mOnTitleClickListener_image);
在您的课堂上输入以下代码:
public OnClickListener mOnTitleClickListener_image = new OnClickListener() {
public void onClick(View v) {
final int position = listv.getPositionForView((View) v.getParent());
Intent i = new Intent(Activity.this, nextactivity.class);
i.putExtra("position",""+position);
startActivity(i);
}
};
在onCreate()的下一个活动中:
以上代码仅适用于您可以为不同视图创建的图像。有关更多详细信息,请参阅:
你的下一个活动
public class NextActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String extras = getIntent().getStringExtra("position");
// your position is below
int pos = Integet.parseInteget(extras);
Log.e("position-->",""+pos);
// now you can use this position any where in your class
}
}
将此接口添加到适配器类:
public class sampleadapter extends BaseAdapter {
public sampleadapter(screen ListViewActivity,int[] imageIds) {
// TODO Auto-generated constructor stub
}
public int getCount() {
return imageIds.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
vi=convertView;
vi = LayoutInflater.from(parent.getContext()).inflate(R.layout.explorescreen, null);
Holder.images=(ImageView) vi.findViewById(R.id.image);
Holder.images.setImageResource(imageIds[position]);
vi.setTag(ViewHolder);
Holder = (ViewHolder) vi.getTag();
return vi;
}
};
public interface MyItemFoundListener{
public void itemFound(int resourceId);
}
在适配器类中创建一个变量
MyItemFoundListener mItemFoundListener;
public void setOnMyItemFoundListener(MyItemFoundListener listener)
{
mItemFoundListener = listener;
}
将方法添加到适配器类
MyItemFoundListener mItemFoundListener;
public void setOnMyItemFoundListener(MyItemFoundListener listener)
{
mItemFoundListener = listener;
}
在getView方法中输入
if(mItemFoundListener!=null)
mItemFoundListener.itemFound(imageIds[position]);
现在在活动类中实现接口
MyActivity implements MyItemFoundListener
public void itemFound(int resourceId){
//Now whenever getView from adapter will be called it will pass the resourceId here in your activity
}
在adapter=newsamdecapter(screen.this,imageid)之后代码>
添加adapter.setOnMyItemFoundListener(此)代码>
将此方法添加到活动类
MyActivity implements MyItemFoundListener
public void itemFound(int resourceId){
//Now whenever getView from adapter will be called it will pass the resourceId here in your activity
}
将此接口添加到适配器类:
public class sampleadapter extends BaseAdapter {
public sampleadapter(screen ListViewActivity,int[] imageIds) {
// TODO Auto-generated constructor stub
}
public int getCount() {
return imageIds.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
vi=convertView;
vi = LayoutInflater.from(parent.getContext()).inflate(R.layout.explorescreen, null);
Holder.images=(ImageView) vi.findViewById(R.id.image);
Holder.images.setImageResource(imageIds[position]);
vi.setTag(ViewHolder);
Holder = (ViewHolder) vi.getTag();
return vi;
}
};
public interface MyItemFoundListener{
public void itemFound(int resourceId);
}
在适配器类中创建一个变量
MyItemFoundListener mItemFoundListener;
public void setOnMyItemFoundListener(MyItemFoundListener listener)
{
mItemFoundListener = listener;
}
将方法添加到适配器类
MyItemFoundListener mItemFoundListener;
public void setOnMyItemFoundListener(MyItemFoundListener listener)
{
mItemFoundListener = listener;
}
在getView方法中输入
if(mItemFoundListener!=null)
mItemFoundListener.itemFound(imageIds[position]);
现在在活动类中实现接口
MyActivity implements MyItemFoundListener
public void itemFound(int resourceId){
//Now whenever getView from adapter will be called it will pass the resourceId here in your activity
}
在adapter=newsamdecapter(screen.this,imageid)之后代码>
添加adapter.setOnMyItemFoundListener(此)代码>
将此方法添加到活动类
MyActivity implements MyItemFoundListener
public void itemFound(int resourceId){
//Now whenever getView from adapter will be called it will pass the resourceId here in your activity
}
您想知道如何将值从1个活动传递到另一个活动/如果您想传递listView行上的值,请单击,然后为listView设置OnItemClickListner,并使用IntentListView.getAdapter().getItemId(位置)启动另一个活动;只需浏览一些有关ListView的教程…因为您的节目需要学习很多。。。由同一用户复制您想知道如何将值从一个活动传递到另一个活动/如果您想传递listView行上的值,请单击,然后为listView设置OnItemClickListner,并使用IntentListView.getAdapter().getItemId(位置)启动另一个活动;只需浏览一些有关ListView的教程…因为您的节目需要学习很多。。。由同一用户复制我已编辑我的问题这正是您需要的。Naveen是..当我滚动图像时,我将根据该文本获取一些id将设置您是否实现此解决方案?抱歉,它不起作用我已编辑我的问题这正是您需要的。Naveen是..当我滚动图像时,我将根据该文本获取一些idsetHave你是否实施了此解决方案?抱歉,它不起作用我编辑了我的问题@Dhaval Sodha Parmari,我已经给了你你想要的代码。使用你的代码,我将获得正确的职位我如何在活动中使用它检查我编辑的ans…我没有传递到同一活动中的另一个活动我需要来自Adapter的数据i已编辑我的问题@Dhaval Sodha Parmari已为您提供您想要的代码。使用您的代码,我将获得正确的职位如何在活动中使用该职位检查我编辑的ans…..我没有传递到同一活动中的其他活动我需要来自适配器的数据