如何从onItemClick中的ListView获取值并填写ViewPager?

时间:2017-12-16 05:55:48

标签: java android listview android-viewpager

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

listviewviewpager屏幕外观 image

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);
}

1 个答案:

答案 0 :(得分:2)

按照以下步骤

第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步

点击listview中的ViewPagerActivty点击项目位置

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

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