0

我创建了一个带有自定义 addapter 的列表视图来显示来自用户的推文。现在有时在推文中提供了一个链接。我希望它们是可点击的,并且列表视图中的项目本身不必是可点击的。这是我的列表视图的布局,有 2 行显示示例

IMG

我试图使文本视图中的链接(有时带有链接的文本)可单击,并且还可以自动链接:XML 中的 WEB 和编程方式。但是每次我单击链接时,它都会选择列表项而不是文本视图中的链接。

在java代码中是这样的:

message.setAutoLinkMask(1); message.setLinksClickable(true);

public class UserItemAdapter extends ArrayAdapter<Tweet> {
    private ArrayList<Tweet> tweets;

    public UserItemAdapter(Context context, int textViewResourceId,
            ArrayList<Tweet> tweets) {
        super(context, textViewResourceId, tweets);
        this.tweets = tweets; 
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View v = convertView;
        if (v == null) {
            LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = vi.inflate(R.layout.listitem, null);
        }

        Tweet tweet = tweets.get(position);
        if (tweet != null) {
            TextView username = (TextView) v.findViewById(R.id.username);
            TextView message = (TextView) v.findViewById(R.id.message);
            **message.setAutoLinkMask(1);
            message.setLinksClickable(true);**
            ImageView image = (ImageView) v.findViewById(R.id.avatar);
            TextView date = (TextView) v.findViewById(R.id.date);
            if (username != null) {
                username.setText(tweet.username);
            }

            if (message != null) {
                message.setText(tweet.message);
            }

            if (date != null) {
                date.setText(tweet.hfdate);
            }
        }
        return v;
    }
}

并且listitem的xml在textview消息中就像这样

android:autoLink="web" android:linksClickable="true"

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="left|center"
android:paddingBottom="5px"
android:paddingLeft="5px"
android:paddingTop="5px"
tools:context=".TwitterActivity$AsyncOp" >

<ImageView
    android:id="@+id/avatar"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_marginRight="6dip"
    android:src="@drawable/twitterimg" />

<LinearLayout
    android:layout_width="0dip"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/username"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:textColor="@color/Orange" />

    <TextView
        android:id="@+id/message"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10px"
        android:autoLink="web"
        android:linksClickable="true"
        android:textColor="#0099CC" />

    <TextView
        android:id="@+id/date"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10px"
        android:textColor="@color/Orange" />
</LinearLayout>

</LinearLayout>

有人知道我做错了吗?

4

0 回答 0