将ListView对象链接到布局android

时间:2013-01-29 11:49:42

标签: java android xml

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

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

换句话说,使用listview作为其他布局的链接。

我在互联网上发现的一切都有使用Toast的最终结果......但是我不想要祝酒,我想链接到下一页。

4 个答案:

答案 0 :(得分:0)

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

[LinearLayout1 LinearLayout2 Breadcrumb]是假设是导航或选项卡,选中后将相应的内容插入主内容?

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

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

请参阅另一个有关如何进行幻灯片动画的stackoverflow答案: Android Fragments and animation

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

答案 1 :(得分: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);
}

答案 2 :(得分:0)

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

使用垂直LinearLayout,使用“list elements”以编程方式填充,然后添加

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

但它有点矫枉过正

答案 3 :(得分: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;


          }

      }
    });

    }   }