2

我被卡住了,我不知道如何实现片段内的 ListView,我正在尝试制作一个聊天 gui。

有可能做这样的事情还是我完全在风中?

感谢帮助!向新手致敬!^^

这是片段代码:

public static class ChatFragment extends Fragment {

        public ChatFragment() {
            // Empty constructor required for fragment subclasses
        }

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_chat, container, false);

            /*FragmentManager fm =  getActivity().getFragmentManager();
            DataListFragment list = new DataListFragment();
            fm.beginTransaction().add(R.id.list_message_History, list).commit();
            */

            getActivity().setTitle(R.string.chat);
            return rootView;
        }
    }

但正如你所见,我不知道如何将这一切连接起来。我使用了一个自定义的 ListFragment,它使用 ArrayAdapter 来处理数据。

这是我的布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent">

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                  xmlns:tools="http://schemas.android.com/tools"
                  android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:id="@id/android:list"
                  android:orientation="horizontal">
        <ListView android:id="@android:id/list"
                  android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:drawSelectorOnTop="false"/>
    </LinearLayout>


    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                  xmlns:tools="http://schemas.android.com/tools"
                  android:layout_width="match_parent"
                  android:layout_height="match_parent"
                  android:orientation="horizontal">
        <EditText android:id="@+id/edit_message"
                  android:layout_weight="1"
                  android:layout_width="0dp"
                  android:layout_height="wrap_content"
                  android:hint="@string/edit_message" />
        <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/button_send" />
    </LinearLayout>
</LinearLayout>
4

2 回答 2

1

您不必在 ChatFragment 中添加另一个 Fragment 即可拥有一个 ListView。从您的布局中获取 ListView 的参考,如下所示:

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

现在将适配器和数组/列表设置为它,你就完成了。

并且不要在 Fragment 内进行 Fragment 事务。使用您的 Activity 和 DrawerLayout 来完成这项工作。

于 2013-08-31T12:33:01.600 回答
0

不需要ChatFragment

让您活动 aFragmentActivity并使用其中的 ListFragment 直接膨胀布局(R.layout.fragment_chat)Activity

class MainActivity extends FragmentActivity {
   onCreate(Bundle extra) {
   ...
   setContentView(R.layout.fragment_chat);
   ...
}
}

检查示例以使用ListFragments.

于 2013-08-31T12:00:14.607 回答