我在互联网上搜索过这个,似乎没有关于如何做到这一点的简单解释或教程。
基本上,我想要一个具有ListView的布局,用户可以在其中单击一个对象,然后将它们带到下一个布局。
换句话说,使用listview作为其他布局的链接。
我在互联网上发现的一切都有使用Toast的最终结果......但是我不想要祝酒,我想链接到下一页。
答案 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;
}
}
});
} }