列表视图与滑动菜单片段

时间:2013-04-19 20:12:38

标签: android

更新

就是这样你知道,当我尝试导入项目时,我最终得到的错误超出了我的数量,因此为什么我在这里试图解决它。我的滑动工作正常,它只是添加了一个让我失望的列表菜单。谢谢你对我有耐心。

我没有更改主要,所以在这里它是反正的:

package com.projectcaruso.nfp;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

我厌倦了将他的代码导入我的MenuFragment.java

package com.projectcaruso.nfp;

import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class MenuFragment extends ListFragment {

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.list, null);
    }

    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        SampleAdapter adapter = new SampleAdapter(getActivity());
        for (int i = 0; i < 20; i++) {
            adapter.add(new SampleItem("Sample List", android.R.drawable.ic_menu_search));
        }
        setListAdapter(adapter);
    }

    private class SampleItem {
        public String tag;
        public int iconRes;
        public SampleItem(String tag, int iconRes) {
            this.tag = tag; 
            this.iconRes = iconRes;
        }
    }

    public class SampleAdapter extends ArrayAdapter<SampleItem> {

        public SampleAdapter(Context context) {
            super(context, 0);
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            if (convertView == null) {
                convertView = LayoutInflater.from(getContext()).inflate(R.layout.row, null);
            }
            ImageView icon = (ImageView) convertView.findViewById(R.id.row_icon);
            icon.setImageResource(getItem(position).iconRes);
            TextView title = (TextView) convertView.findViewById(R.id.row_title);
            title.setText(getItem(position).tag);

            return convertView;
        }

    }
}

list.xml为空 activity_main.xml如下:

<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
            android:paddingLeft="@dimen/activity_horizontal_margin"
            android:paddingRight="@dimen/activity_horizontal_margin"
            android:paddingTop="@dimen/activity_vertical_margin"
            tools:context=".MainActivity" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/hello_world" />

        </RelativeLayout>

1 个答案:

答案 0 :(得分:1)

您当前的代码存在许多问题。我建议您查看滑动菜单(SlidingFragmentActivitySlidingListActivity)示例中给出的示例 您不能同时运行两个活动。滑动菜单位于后面,但它由前端活动管理。您正在寻找的是片段。

更新: ActivityListFragment样本可能有所帮助。
基本上你需要的是

// set the content view
        setBehindContentView(R.layout.fragment_menu);

应该是空白布局。然后是重要的部分:

return inflater.inflate(R.layout.list, null);

如果你执行super.onCreateView(),它将无所事事或像现在一样崩溃。我强烈建议您查看链接中的两个示例。