Android 放置一个ListActivity“;在;我的主要活动视图
我会尽量简明扼要地回答这个问题: 假设我有一个完全正常的列表活动。。比如说,绿色活动 如何将“绿色列表活动”放入另一个现有活动布局中?谢谢Android 放置一个ListActivity“;在;我的主要活动视图,android,android-intent,android-listview,android-activity,Android,Android Intent,Android Listview,Android Activity,我会尽量简明扼要地回答这个问题: 假设我有一个完全正常的列表活动。。比如说,绿色活动 如何将“绿色列表活动”放入另一个现有活动布局中?谢谢 我的android MainActivity有一个xml文件activity_main.xml,如下所示: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.and
我的android MainActivity有一个xml文件activity_main.xml,如下所示:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.client.app.MainActivity">
// some other images, buttons widgets, etc here
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swipe_container"
xmlns:android="http://schemas.android.com/apk/res/android">
<ListView
android:id="@+id/feedView"
android:layout_width="wrap_content"
..etc..
android:scrollbars="none"/>
</android.support.v4.widget.SwipeRefreshLayout>
// some other images, buttons widgets, etc here
</RelativeLayout>
Intent feedIntent = new Intent(MainActivity.this, MainFeedActivity.class);
startActivity( feedIntent );
以及与表格和单元格处理相关的所有其他代码
现在,我大致了解了ListActivity,所以我创建了一个新类
public class MainFeedActivity extends ListActivity
我确实把它放在舱单上了
现在,我了解到,通常在主活动中,我会像这样启动新列表活动:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.client.app.MainActivity">
// some other images, buttons widgets, etc here
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swipe_container"
xmlns:android="http://schemas.android.com/apk/res/android">
<ListView
android:id="@+id/feedView"
android:layout_width="wrap_content"
..etc..
android:scrollbars="none"/>
</android.support.v4.widget.SwipeRefreshLayout>
// some other images, buttons widgets, etc here
</RelativeLayout>
Intent feedIntent = new Intent(MainActivity.this, MainFeedActivity.class);
startActivity( feedIntent );
我的困惑
问题一,在活动_main.xml中,我该如何告诉它,我当前拥有的
可以使用不同的方法显示列表视图
您可以使用ListActivity或ListFragment(如果要使用片段)。
在本例中,列表将命名为list(android:id=“@android:id/list”
)。
Android将识别并管理它
或者(我更喜欢这个),在设计中使用列表视图。
在这种情况下列表视图可以有任何id(例如android:id=“@+id/feedView”
)。
现在,您必须使用Android按id查找列表视图
在具有ListView的相同活动中,然后以编程方式创建适配器,填充它并将其分配给ListView
我希望我消除了你的疑虑(至少部分)
无论如何,这里有一个Lars Vogel关于ListView的优秀教程:可以使用不同的方法显示ListView
您可以使用ListActivity或ListFragment(如果要使用片段)。
在本例中,列表将命名为list(android:id=“@android:id/list”
)。
Android将识别并管理它
或者(我更喜欢这个),在设计中使用列表视图。
在这种情况下列表视图可以有任何id(例如android:id=“@+id/feedView”
)。
现在,您必须使用Android按id查找列表视图
在具有ListView的相同活动中,然后以编程方式创建适配器,填充它并将其分配给ListView
我希望我消除了你的疑虑(至少部分)
无论如何,这里有一个由Lars Vogel编写的关于ListView的很棒的教程:我想你对应该做什么有些困惑
如果我理解正确,您有一个main活动
,它以某种方式导航到另一个有列表的活动
- 您的主要活动有一个XML文件,它定义了自己的布局,表示主屏幕
- 您的FeedList活动也具有定义其布局的不同XML
这两者是不同的,相互独立的,当您使用您提到的意图从HomeActivity导航到FeedList activity时,您的新活动将启动,其XML将膨胀并显示在屏幕上,因此无需将列表“放入”home activity
注意:使用普通的活动
而不是列表活动
,并在该活动的xml中定义所需的列表视图
如果有什么不清楚的地方,请随时询问。我想你对应该做什么有些困惑
如果我理解正确,您有一个main活动
,它以某种方式导航到另一个有列表的活动
- 您的主要活动有一个XML文件,它定义了自己的布局,表示主屏幕
- 您的FeedList活动也具有定义其布局的不同XML
这两者是不同的,相互独立的,当您使用您提到的意图从HomeActivity导航到FeedList activity时,您的新活动将启动,其XML将膨胀并显示在屏幕上,因此无需将列表“放入”home activity
注意:使用普通的活动
而不是列表活动
,并在该活动的xml中定义所需的列表视图
请随时询问是否有任何不清楚的地方这就是xml文件的构建方式:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="209dp" >
</ListView>
<TextView
android:id="@+id/group"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
//add any additional widgets here
</LinearLayout>
//在此处添加任何其他小部件
在类中,我将使用片段实现上述功能:
public static class MainFeedFragment extends ListFragment {
public void onStart() {
super.onStart();
// selecting single ListView item
ListView lv = getListView();
// Lauching the Event details screen on selecting a single event
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// getting values from selected ListItem
String ID = ((TextView) view.findViewById(R.id.leader_id))
.getText().toString();
Intent intent = new Intent(view.getContext(),
CoreTeamDetails.class);
intent.putExtra(pid, ID);
view.getContext().startActivity(intent);
}
});
}
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.main,container, false);
//added code to show how adapter connects to list
ListAdapter adapter = new SimpleAdapter(getActivity(),membersList,R.layout.coreteam_item,
setListAdapter(adapter);
return rootView;
}
}
public静态类MainFeedFragment扩展ListFragment{
public void onStart(){
super.onStart();
//选择单个ListView项
ListView lv=getListView();
//在选择单个事件时启动事件详细信息屏幕
lv.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
//从选定的ListItem获取值
字符串ID=((TextView)view.findViewById(R.ID.leader\u ID))
.getText().toString();
Intent Intent=新的Intent(view.getContext(),
CoreTeamDetails.class);
intent.putExtra(pid,ID);
view.getContext().startActivity(intent);
}
});
}
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图根视图=充气机。充气(右布局。主,容器,假);
//添加了显示适配器如何连接到列表的代码
ListAdapter=new SimpleAdapter(getActivity(),membersList,R.layout.coreteam_项,
setListAdapter(适配器);
返回rootView;
}
}
希望这对您有所帮助。以下是xml文件的构建方式:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="209dp" >
</ListView>
<TextView
android:id="@+id/group"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
//add any additional widgets here
</LinearLayout>
//在此处添加任何其他小部件