Android UI进入列表编辑模式

时间:2018-03-16 19:18:05

标签: android xml android-layout

我的活动中有一个简短的项目列表。我想在UI中的某处添加一个按钮,以切换到项目列表的编辑模式。我是Android编程的新手,甚至是使用Android设备。我已经习惯了iOS。在iOS表格中,通常会有一个"编辑"导航栏右上角的按钮。 Android中切换到列表编辑模式的标准方法是什么? (有标准的方法吗?)

在编辑模式下,我计划在每个列表项视图的右侧显示编辑(例如铅笔)和删除(例如' X')按钮。

我认为它不相关,但以防万一......我没有使用RecyclerView或任何花哨的东西。只需LinearLayout。这个清单太短了我不认为有使用回收商的性能原因。是否有其他理由使用RecyclerView

谢谢!

1 个答案:

答案 0 :(得分:1)

您需要采取行动模式。例如:

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.ActionMode;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;

public class MainActivity extends Activity {

    ActionMode actionMode;
    final String LOG_TAG = "myLogs";

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

    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    public void onClick(View v) {
        if (actionMode == null)
            actionMode = startActionMode(callback);
        else
            actionMode.finish();
    }

    private ActionMode.Callback callback = new ActionMode.Callback() {

        public boolean onCreateActionMode(ActionMode mode, Menu menu) {
            mode.getMenuInflater().inflate(R.menu.context, menu);
            return true;
        }

        public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
            return false;
        }

        public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
            Log.d(LOG_TAG, "item " + item.getTitle());
            return false;
        }

        public void onDestroyActionMode(ActionMode mode) {
            Log.d(LOG_TAG, "destroy");
            actionMode = null;
        }

    };

    // ...

}