如何从可点击的 ListView 中获取 ViewFlipper 的特定子项?
How to go specific child of a ViewFlipper from a clickable ListView?
我有两个 activity,其中一个 (FirstActivity
) 有一个可点击的 ListView
,其中有两个项目 item1
和 item2
。另一个(SecondActivity
)具有 ViewFlipper
和两个子布局 layout1
和 layout2
,我想通过单击 item1
进入 layout1
ListView
,我的问题是我该怎么做?到目前为止我已经做了
showPoemListLV.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if(position == 0){
viewFlipper.setDisplayedChild(0);
viewFlipper.setDisplayedChild(viewFlipper.indexOfChild(findViewById(R.id.anamikaSV)));
}
}
});
但它根本不起作用:(点击item1
后出现空指针异常
你得到 NPE 因为你还没有开始 SecondActivity
yet.You 可以做到这一点
在第一个活动中
showPoemListLV.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if(position == 0){
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("POSITION_CLICKED",0);
startActivity(intent);
}
}
});
然后在 SecondActivity
的 OnCreate 中,在 setContentView
调用之后,执行此操作
ViewFlipper viewFlipper = (ViewFlipper) findViewById(R.id.your_viewflipper_id);
Intent intent = getIntent();
int POSITION_CLICKED = intent.getIntExtra("POSITION_CLICKED",0);
viewFlipper.setDisplayedChild(POSITION_CLICKED);
只需将 R.id.your_viewflipper_id
替换为您的 ViewFlipper
的 ID。
我有两个 activity,其中一个 (FirstActivity
) 有一个可点击的 ListView
,其中有两个项目 item1
和 item2
。另一个(SecondActivity
)具有 ViewFlipper
和两个子布局 layout1
和 layout2
,我想通过单击 item1
进入 layout1
ListView
,我的问题是我该怎么做?到目前为止我已经做了
showPoemListLV.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if(position == 0){
viewFlipper.setDisplayedChild(0);
viewFlipper.setDisplayedChild(viewFlipper.indexOfChild(findViewById(R.id.anamikaSV)));
}
}
});
但它根本不起作用:(点击item1
你得到 NPE 因为你还没有开始 SecondActivity
yet.You 可以做到这一点
在第一个活动中
showPoemListLV.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if(position == 0){
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("POSITION_CLICKED",0);
startActivity(intent);
}
}
});
然后在 SecondActivity
的 OnCreate 中,在 setContentView
调用之后,执行此操作
ViewFlipper viewFlipper = (ViewFlipper) findViewById(R.id.your_viewflipper_id);
Intent intent = getIntent();
int POSITION_CLICKED = intent.getIntExtra("POSITION_CLICKED",0);
viewFlipper.setDisplayedChild(POSITION_CLICKED);
只需将 R.id.your_viewflipper_id
替换为您的 ViewFlipper
的 ID。