简体   繁体   English

Android-列表视图中的可选TextView

[英]Android - Selectable TextView inside a listview

I got a problem when trying to copy the content of TextView inside a listview on my Sony Xperia. 尝试在Sony Xperia的listview中复制TextView的内容时遇到问题。

This is my listview: 这是我的列表视图:

<ListView
    android:id="@+id/list_1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:cacheColorHint="@android:color/transparent"
    android:divider="#00000000"
    android:listSelector="@android:color/transparent"/>

And this is my list_item: 这是我的list_item:

<?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="wrap_content">
    <TextView
    android:layout_width="match_parent"
    android:id="@+id/editText1" android:layout_height="wrap_content" />

</LinearLayout>

And my code: 而我的代码:

 @Override
 public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.main);
     ListView list = (ListView) findViewById(R.id.list_1);
     ArrayList<String> data = new ArrayList<String>();
     data.add("AAAAAAAAA");
     data.add("BBBBBBBBBB");
     data.add("CCCCCCCC");
     data.add("DDDDDDDDD");
     list.setAdapter(new MyAdapter(data));
}

This is my adapter: 这是我的适配器:

private class MyAdapter extends BaseAdapter{
    private ArrayList<String> mData;
    public MyAdapter (ArrayList<String> data){
        super();
        mData = data;
    }
    @Override
    public int getCount() {
        return mData.size();
    }

    @Override
    public Object getItem(int position) {
        return mData.get(position);
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if(convertView == null) {
            convertView = getLayoutInflater().inflate(
                    R.layout.list_item, parent, false);
        }
        String str = mData.get(position);
        TextView tv = (TextView) convertView.findViewById(R.id.editText1);
        tv.setText(str);
        tv.setTextIsSelectable(true);
        return convertView;
    }
}

I found on some threads that setTextIsSelectable(true) will allow copying text on TextView, but look like it's not work if TextView inside a listview. 我在一些线程上发现setTextIsSelectable(true)将允许在TextView上复制文本,但是如果TextView位于列表视图中,则看起来不起作用。

Could you guys help me a solution? 你们能帮我解决一个问题吗?

Have you tried to put this on your TextView component: android:textIsSelectable="true"? 您是否尝试将其放在TextView组件上:android:textIsSelectable =“ true”?

<?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="wrap_content">
    <TextView
    android:layout_width="match_parent"
    android:id="@+id/editText1" android:layout_height="wrap_content"
android:textIsSelectable="true"
 />

</LinearLayout>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM