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>

//在此处添加任何其他小部件