【问题标题】:how to get values from ListView in onItemClick and fill in ViewPager?如何在onItemClick 中从ListView 中获取值并填写ViewPager?
【发布时间】:2017-12-16 05:55:48
【问题描述】:

我有一个ListView,当用户点击一个项目时,ViewPager 应该会以相同的标题打开。因此,如果项目 1 被点击,ViewPager 应该会打开具有相同标题的页面,例如在图像中(在左侧)。此外,页面应该是可滑动的,但它们必须与图像中的ListView 位于同一行(在右侧)。怎么可能做到这一点? OnItemClick 方法我已经实现了,但是现在应该怎么做呢?

listviewviewpager 屏幕外观

ListviewActiviy.java

public void onItemClick(AdapterView<?> arg0, View arg1, int position
,long id) {
mCursor.moveToPosition(position);
String rtitle = unescape(mCursor.getString(mCursor.getColumnIndex("rtitle")));
Intent i = new Intent(ListviewActiviy.this, ViewpagerActivity.class);
i.putExtra("rtitle", rtitle);
i.putExtra("POS", position);
startActivity(i);
}

ViewpagerActivity.java

public Object instantiateItem(View collection, int position) {
final View view = getLayoutInflater().inflate(R.layout.backgroundd, null);
position = getIntent().getExtras().getInt("POS");
mCursor.moveToPosition(position);       
((ViewPager)collection).addView(view, ((ViewPager)collection).getChildCount() > position ? position : ((ViewPager)collection).getChildCount());     
final TextView tv=(TextView)view.findViewById(R.id.rhymeviewpagertext);
title = getIntent().getStringExtra("rtitle");
tv.setText(rtitle);
}

【问题讨论】:

  • 请任何人回答我的问题。请给我建议或举例简要说明。
  • 当你在listview中使用onItemClick时,你只需要创建另一个具有ViewPageractivity并传递当前项目数据。
  • developer.android.com/reference/android/support/v4/view/…。您可以使用此方法将您的视图寻呼机打开到点击的页面
  • @ArpitPrajapati 是正确的,但不要传递当前项目数据,您应该为 ViewPager 和 ListView 使用相同的数据集,并且只传递要显示的项目的位置。这样您就可以使用与 ListView 相同的数据集滑动 ViewPager。
  • 请任何人回答我的问题。提前致谢

标签: java android listview android-viewpager


【解决方案1】:

按照这些步骤进行

第一步

使用ViewPager 创建新活动,例如ViewPagerActivty

第 2 步

ItemClickListener 设置为您的ListView,并使用Intent 将点击的项目位置传递给您的ViewPagerActivty.this

ListView.setOnItemClickListener(new OnItemClickListener()
{
    @Override 
    public void onItemClick(AdapterView<?> arg0, View arg1,int position, long arg3)
    { 
        Intent intent= new Intent(this,ViewPagerActivty.this);
        intent.putExtra("POS",position);
        startActivity(intent);
        Toast.makeText(YourActivity.this, "" + position, Toast.LENGTH_SHORT).show();
    }
});

第 3 步

像这样在您的ViewPagerActivty 中获取listview 点击的项目位置

int position=getIntent().getIntExtra("POS",1);

现在根据该位置在您的ViewPager 中显示数据

【讨论】:

  • 评论不用于扩展讨论;这个对话是moved to chat
  • 位置来了,但每次都会显示一个位置。例如:在列表视图中选择项目 2,此项目 2 显示在 viewpager 中,每次显示项目 2 时向左或向右滑动。位置没有增加。
  • 请回答我的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多