如何从可点击的 ListView 中获取 ViewFlipper 的特定子项?

How to go specific child of a ViewFlipper from a clickable ListView?

我有两个 activity,其中一个 (FirstActivity) 有一个可点击的 ListView,其中有两个项目 item1item2。另一个(SecondActivity)具有 ViewFlipper 和两个子布局 layout1layout2,我想通过单击 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。

Developer guide on starting a new Activity