0

我在整个互联网上搜索了这个,似乎没有关于如何做到这一点的简单解释或教程。

基本上,我想要一个具有 ListView 的布局,用户可以在其中单击一个对象,并将它们带到下一个布局。

换句话说,使用列表视图作为其他布局的链接。

我在互联网上找到的所有内容都有使用 Toast 的最终结果......但是我不想要 Toast,我想链接到下一页。

4

4 回答 4

0

感谢所有的帮助。对不起,我花了我时间回复。我的解决方案如下:)

 public class FP_WL1_ListView extends Activity {

 private ListView lv1;

 private String lv_arr[]={"Exercise Bike", "Treadmill", "Cross Trainer", "Squats", "Lunges"};

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.fitnessprograms_wlday_one);

        lv1=(ListView)findViewById(R.id.list);

        lv1.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , lv_arr));


        lv1.setOnItemClickListener(new OnItemClickListener() {
      public void onItemClick(AdapterView<?> parent, View view,
          int position, long id) {
          final TextView mTextView = (TextView)view;
          switch (position) {
            case 0:
             Intent newActivity0 = new Intent(FP_WL1_ListView.this,FitnessPrograms_Wlone_sp.class);     
             startActivity(newActivity0);
            break;
            case 1:
                 Intent newActivity1 = new Intent(FP_WL1_ListView.this,FitnessPrograms_Wlone_Treadmill.class);     
                 startActivity(newActivity1);
                break;
            case 2:
                 Intent newActivity2 = new Intent(FP_WL1_ListView.this,FitnessPrograms_Wlone_Crosstrainer.class);     
                 startActivity(newActivity2);
                break;
            case 3:
                 Intent newActivity3 = new Intent(FP_WL1_ListView.this,FitnessPrograms_Wlone_Squats.class);     
                 startActivity(newActivity3);
                break;
            case 4:
                 Intent newActivity4 = new Intent(FP_WL1_ListView.this,FitnessPrograms_Wlone_Lunges.class);     
                 startActivity(newActivity4);
                break;


          }

      }
    });

    }   }      
于 2013-04-12T09:54:13.160 回答
0

你的问题有点令人困惑,所以我要做一个假设。

[LinearLayout1 LinearLayout2 Breadcrumb] 是否应该是导航或选项卡,在选择时将其相应内容插入主内容?

如果是这样,我建议为每条内容使用片段。然后,当您单击导航/选项卡时,执行片段的动画,将内容滑入和滑出。

请参阅谷歌文档了解如何使用片段:http: //developer.android.com/guide/components/fragments.html

请参阅另一个 stackoverflow 答案以了解如何制作幻灯片动画:Android Fragments and animation

http://android-developers.blogspot.com/2011/08/horizo​​ntal-view-swiping-with-viewpager.html

于 2013-01-29T12:00:41.637 回答
0

下面是一些代码,概述了如何在单击列表行后调用活动。希望您可以调整Toast您提到的示例以使其适合您。基本思想是你Activity用新的Intent. 您可以将listView行中所需的任何数据作为Intent.

final static String[] months = new String[] {"Jan","Feb","Mar"};

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_layout);

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            R.layout.row_layout, R.id.text1, months);
    setListAdapter(adapter);
}

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    int intItem = (int)id;
    Intent intent= new Intent(this, SecondaryActivity.class);
    intent.putExtra("MONTH", intItem);
    startActivity(intent);
}
于 2013-01-29T12:08:39.087 回答
0

为什么要使用 ListView 呢?每一行必须导致不同的布局?它的主要好处是显示动态变化的数据,但在您的情况下,数据是恒定的,对吗?

使用垂直线性布局,用“列表元素”以编程方式填充它,然后添加

leListComponent.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        startActivity(new Intent(YourActivity.this, TargetActivity.class));
    }
});

每个。

如果我没有得到它,并且您对使用某些适配器感觉很好,它可以是这样的:

public class LeWrapper {
    private String caption;
    private Class<? extends Activity> target;
    ...POJO here...
}

v.setOnItemClickListener(new OnItemClickListener() {
  public void onItemClick(AdapterView<?> parent, View view,
      int position, long id) {
      //get leWrapper object from adapter
      startActivity(new Intent(MenuActivity.this, leWrapper.getTarget()));
  }
});

但它有点矫枉过正

于 2013-01-29T12:10:30.450 回答