长按可突出显示自定义列表视图项

用户名

我创建了一个自定义listview该自定义ImageView在左侧和TextView右侧。Listview通过actionbar上下文菜单实现多选

问题是,当我长时间单击某个项目时,它没有突出显示。

这是我listview在我中设置的方式ListFragment

PasswordsFragment.java

package mohd.itcs.safewallet;

import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.ActionMode;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AbsListView.MultiChoiceModeListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ListView;

public class PasswordsFragment extends ListFragment {

private String titles[] = { "item1", "item2", "item3" };

@Override
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setListAdapter(new CustomPasswordsList(getActivity(), titles));

}

@Override
public void onActivityCreated(Bundle savedInstanceState) {

    super.onActivityCreated(savedInstanceState);

    /*
     * Setup Multiple Selection Mode
     */
    getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
    getListView().setOnItemLongClickListener(new OnItemLongClickListener() {

        @Override
        public boolean onItemLongClick(AdapterView<?> listview, View item,
                int position, long id) {
            getListView().setItemChecked(position, true);
            return true;
        }

    });

    getListView().setMultiChoiceModeListener(new MultiChoiceModeListener() {

        @Override
        public boolean onActionItemClicked(ActionMode arg0, MenuItem arg1) {
            // TODO Auto-generated method stub
            return false;
        }

        /*
         * Inflate Actionbar Menu for Passwords Multiple Selection
         */
        @Override
        public boolean onCreateActionMode(ActionMode arg0, Menu menu) {
            getActivity().getMenuInflater().inflate(
                    R.menu.passwords_context_menu, menu);
            return true;
        }

        @Override
        public void onDestroyActionMode(ActionMode arg0) {
        }

        @Override
        public boolean onPrepareActionMode(ActionMode arg0, Menu arg1) {
            return false;
        }

        @Override
        public void onItemCheckedStateChanged(ActionMode actionMode,
                int position, long id, boolean arg3) {
            /*
             * Change Title bar to number of selection
             */
            int checkedItems = getListView().getCheckedItemCount();
            actionMode.setTitle(String.valueOf(checkedItems) + " Selected");
        }
    });

}

}

CustomPasswordsList.java

package mohd.itcs.safewallet;

import android.content.Context;
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 CustomPasswordsList extends ArrayAdapter<String> {

private final Context context;
private final String values[];

public CustomPasswordsList(Context context, String[] values)
{
    super(context, R.layout.password_list_item, values);
    this.context = context;
    this.values = values;
}

public View getView(int position, View convertView, ViewGroup parent)
{
    LayoutInflater inflater = (LayoutInflater)    context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    View rowView = inflater.inflate(R.layout.password_list_item, parent, false);
    TextView passwordTitle = (TextView) rowView.findViewById(R.id.textView_passwordTitle);
    ImageView passwordIcon = (ImageView) rowView.findViewById(R.id.imageView_passwordIcon);

    passwordTitle.setText(values[position]);

    passwordIcon.setImageResource(R.drawable.facebook);


    return rowView;
}

}

passwords_list_item

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

<ImageView 
    android:id="@+id/imageView_passwordIcon"
    android:layout_height="60dp"
    android:contentDescription="@string/imageView_passwordIcon"
    android:layout_width="60dp" />

<TextView 
    android:id="@+id/textView_passwordTitle"
    android:layout_height="wrap_content"
    android:layout_width="0dp"
    android:paddingLeft="10dp"
    android:paddingTop="15dp"
    android:textSize="16sp"
    android:textColor="#000000"
    android:layout_weight="1" />

</LinearLayout>
拉贡南丹

使用getActivity()就足够了

setListAdapter(new CustomPasswordsList(getActivity(), titles));

您需要覆盖 onItemCheckedStateChanged

  public void onItemCheckedStateChanged(ActionMode mode,
            int position, long id, boolean checked) {
        final int checkedCount = getListView().getCheckedItemCount();
        // get checked items count 

从样品中提取@

android-sdk-linux/samples/android-17/ApiDemos/src/com/example/android/apis/view/List16

示例:根据需要修改以下内容

public class MainActivity extends ListActivity {
    String[] GENRES = new String[] {
            "Action", "Adventure", "Animation", "Children", "Comedy",
        "Documentary", "Drama",
            "Foreign", "History", "Independent", "Romance", "Sci-Fi",
        "Television", "Thriller"
        };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ListView lv = getListView();
        lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
        lv.setMultiChoiceModeListener(new ModeCallback());
        setListAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_activated_1, GENRES));
    }

    @Override
    protected void onPostCreate(Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState);
        getActionBar().setSubtitle("Long press to start selection");
    }

    private class ModeCallback implements ListView.MultiChoiceModeListener {

        public boolean onCreateActionMode(ActionMode mode, Menu menu) {
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.list_select_menu, menu);
            mode.setTitle("Select Items");
            return true;
        }

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

        public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
            switch (item.getItemId()) {
            case R.id.share:
                Toast.makeText(MainActivity.this, "Shared " + getListView().getCheckedItemCount() +
                        " items", Toast.LENGTH_SHORT).show();
                mode.finish();
                break;
            default:
                Toast.makeText(MainActivity.this, "Clicked " + item.getTitle(),
                        Toast.LENGTH_SHORT).show();
                break;
            }
            return true;
        }

        public void onDestroyActionMode(ActionMode mode) {
        }

        public void onItemCheckedStateChanged(ActionMode mode,
                int position, long id, boolean checked) {
            final int checkedCount = getListView().getCheckedItemCount();
            switch (checkedCount) {
                case 0:
                    mode.setSubtitle(null);
                    break;
                case 1:
                    mode.setSubtitle("One item selected");
                    break;
                default:
                    mode.setSubtitle("" + checkedCount + " items selected");
                    break;
            }
        }

    }
}

list_select_menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/share"
          android:title="share"
          android:icon="@android:drawable/ic_menu_share"
          android:showAsAction="always" />
</menu>

快照

在此处输入图片说明

由于您怀疑它是否可以与自定义适配器一起使用

在此处输入图片说明

编辑:

在res / values-v11 / styles.xml下

<resources>

    <style name="AppTheme" parent="android:Theme.Holo.Light"></style>

    <style name="activated" parent="AppTheme">
        <item name="android:background">?android:attr/activatedBackgroundIndicator</item>
    </style>

</resources>

在根元素的自定义布局中添加

 style="@style/activated"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在自定义适配器列表视图中突出显示搜索到的文本

来自分类Dev

在自定义适配器列表视图中突出显示搜索到的文本

来自分类Dev

需要显示具有自定义对齐方式的列表视图项

来自分类Dev

列表显示。触摸时可突出显示整个列表视图项

来自分类Dev

使用自定义适配器在列表视图中选择/突出显示多个项目-Android

来自分类Dev

使用上下文菜单在自定义列表视图中突出显示所选项目?

来自分类Dev

当使用带有选项卡布局的自定义视图加载活动时,在视图寻呼机中突出显示第一项?

来自分类Dev

在“自定义列表视图”实施中按钮未显示

来自分类Dev

自定义适配器不显示列表视图

来自分类Dev

Android自定义列表视图在第一位置显示最后一项

来自分类Dev

QScintilla自定义语法突出显示

来自分类Dev

Notepad ++-自定义语法突出显示

来自分类Dev

自定义vim突出显示

来自分类Dev

IntelliJ IDEA大括号,括号和引号可自定义颜色突出显示

来自分类Dev

在自定义视图列表视图项中缩放位图图像

来自分类Dev

返回自定义对象列表时,RxJava会突出显示错误,但会编译

来自分类Dev

Android-自定义导航抽屉背景列表滚动/突出显示

来自分类Dev

在Android中使用自定义列表对象填充可扩展列表视图

来自分类Dev

在itemclick的自定义列表视图中显示隐藏文本视图

来自分类Dev

将眨眼添加到自定义列表视图项?

来自分类Dev

在自定义适配器的列表视图项中加载不同的图像

来自分类Dev

如果按下“自定义列表视图”项,则设置背景图像

来自分类Dev

列表视图的Android自定义布局

来自分类Dev

Android自定义列表视图排序

来自分类Dev

自定义 EditText 列表视图

来自分类Dev

自定义列表视图中的 InflateException

来自分类Dev

自定义列表视图部分标题

来自分类Dev

IdentityServer未显示自定义视图

来自分类Dev

android:自定义视图未显示

Related 相关文章

  1. 1

    在自定义适配器列表视图中突出显示搜索到的文本

  2. 2

    在自定义适配器列表视图中突出显示搜索到的文本

  3. 3

    需要显示具有自定义对齐方式的列表视图项

  4. 4

    列表显示。触摸时可突出显示整个列表视图项

  5. 5

    使用自定义适配器在列表视图中选择/突出显示多个项目-Android

  6. 6

    使用上下文菜单在自定义列表视图中突出显示所选项目?

  7. 7

    当使用带有选项卡布局的自定义视图加载活动时,在视图寻呼机中突出显示第一项?

  8. 8

    在“自定义列表视图”实施中按钮未显示

  9. 9

    自定义适配器不显示列表视图

  10. 10

    Android自定义列表视图在第一位置显示最后一项

  11. 11

    QScintilla自定义语法突出显示

  12. 12

    Notepad ++-自定义语法突出显示

  13. 13

    自定义vim突出显示

  14. 14

    IntelliJ IDEA大括号,括号和引号可自定义颜色突出显示

  15. 15

    在自定义视图列表视图项中缩放位图图像

  16. 16

    返回自定义对象列表时,RxJava会突出显示错误,但会编译

  17. 17

    Android-自定义导航抽屉背景列表滚动/突出显示

  18. 18

    在Android中使用自定义列表对象填充可扩展列表视图

  19. 19

    在itemclick的自定义列表视图中显示隐藏文本视图

  20. 20

    将眨眼添加到自定义列表视图项?

  21. 21

    在自定义适配器的列表视图项中加载不同的图像

  22. 22

    如果按下“自定义列表视图”项,则设置背景图像

  23. 23

    列表视图的Android自定义布局

  24. 24

    Android自定义列表视图排序

  25. 25

    自定义 EditText 列表视图

  26. 26

    自定义列表视图中的 InflateException

  27. 27

    自定义列表视图部分标题

  28. 28

    IdentityServer未显示自定义视图

  29. 29

    android:自定义视图未显示

热门标签

归档