【问题标题】:Any way to add actionbar and listview in one single activity?有什么方法可以在一个活动中添加操作栏和列表视图?
【发布时间】:2015-03-15 08:29:13
【问题描述】:

当我打开活动时,导航抽屉不会出现。那么有什么方法可以在一个活动中添加列表视图和操作栏?如果有人可以帮助我,将不胜感激。谢谢

public class Cart extends ListActivity {

ArrayAdapter<String> mAdapter;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.cart);


    String[] items = new String[2];
    items[0] = "";


    mAdapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1,
            android.R.id.text1,
            new ArrayList<String>(Arrays.asList(items)));
    setListAdapter(mAdapter);

    ListView listView = getListView();

    SwipeDismissListViewTouchListener touchListener =
            new SwipeDismissListViewTouchListener(
                    listView,
                    new SwipeDismissListViewTouchListener.DismissCallbacks() {
                        @Override
                        public boolean canDismiss(int position) {
                            return true;
                        }

                        @Override
                        public void onDismiss(ListView listView, int[] reverseSortedPositions) {
                            for (int position : reverseSortedPositions) {
                                mAdapter.remove(mAdapter.getItem(position));
                            }
                            mAdapter.notifyDataSetChanged();
                        }
                    });
    listView.setOnTouchListener(touchListener);// ListView scrolling,

}

【问题讨论】:

  • 使用ListView 和你的活动extends ActionBarActivity

标签: android listview android-listview android-actionbar navigation-drawer


【解决方案1】:

只需在 ActionBarActivity 中放置一个 ListView

public class someActivity extends ActionBarActivity {

    ListView listView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_some);

        listView = (ListView) findViewById(R.id.listView);
        YourAdapter listAdapter = new YourAdapter();
        listView.setAdapter(listAdapter);
    }
}

Xml

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

    <ListView
    android:id="@+id/listView"
    android:layout_height="match_parent"
    android:layout_width="match_parent"/>

</LinearLayout>

【讨论】:

  • 对不起.. 但是一旦我改变它, setListAdapter(mAdapter); 就会出现一些错误。 ListView listView = getListView();并且没有ActionBarActivity ..是因为我使用的是android studio吗?再次抱歉不熟悉android仍在学习它
  • @VincentWeiSheng 我已将适配器添加到我的答案中。至于您的其他问题,操作栏活动没有方法 setListAdapter 或 getListView,它必须像我展示的那样完成。不知道为什么你的代码也不能识别 ActionBarActivity,但它与 android studio 无关
【解决方案2】:

谢谢乔!我只需要登录并给这个答案竖起大拇指。解决了我的问题。比我最近几天查到的任何答案都好:)

这是我如何解决它的一段代码

使用 AppCompatActivity 作为 ActionBarActivity 似乎已被弃用。

public class SelectActivity extends AppCompatActivity /*ListActivity*/ implements OnClickListener {

ListView listView;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.select_clothes);

    listView = (ListView) findViewById(R.id.listView);

    mList = getListData();
    MyAdapter listAdapter = new MyAdapter(this, R.layout.row, mList);
    listView.setAdapter(listAdapter);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-21
    • 1970-01-01
    • 2013-03-11
    • 2021-12-25
    相关资源
    最近更新 更多