单击时更改适配器中的膨胀行

时间:2014-11-25 11:31:33

标签: java android baseadapter layout-inflater

我有一个带按钮和文本视图的适配器。它代表了朋友的要求。

TextView文本将是:您想接受X作为您的朋友吗?

有2个按钮:一个用于接受,一个用于拒绝。按Decline,它只会从ListView中删除该行,而按下accept会将文本更改为:X和Y现在是朋友。

我的问题是如何获取行的位置并在按下按钮时更改它并保存视图以供下次访问时使用?

适配器:目前我没有适配器的正确数据结构,因此出于测试目的,只需使用字符串:

public class FriendRequestAdapter extends BaseAdapter {

    String mName;
    Context mContext;

    public FriendRequestAdapter(String name, Context context) {
        this.mName = name;
        this.mContext = context;
    }

    @Override
    public int getCount() {
        return 1;
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            LayoutInflater mInflater = (LayoutInflater)
                    mContext.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
            convertView = mInflater.inflate(R.layout.friend_request_layout, null);
        }

        TextView sender_name = (TextView) convertView.findViewById(R.id.wannabe_name);
        if (mName.length() > 11) {
            mName = mName.substring(0, 12);
        }
        sender_name.setText(mName);

        ImageButton friend_request_accepted = (ImageButton) convertView.findViewById(R.id.accept_friend_request);
        friend_request_accepted.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new AsyncTask<Void, Void, Void>() {
                    @Override
                    protected Void doInBackground(Void... params) {
                        try {
                            new APIService().confirmInvite();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                        return null;
                    }
                };
            }
        });

        return convertView;
    }

膨胀布局:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout
    android:id="@+id/changing_layout"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/check_in_map_menu"
    android:descendantFocusability="blocksDescendants">

    <RelativeLayout
        android:id="@+id/friend_image_container"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="7dp"
        android:background="@drawable/polaroid_frame_friend_list">

        <ImageView
            android:id="@+id/facebook_friend_pic"
            android:layout_width="55dp"
            android:layout_height="45dp"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:background="@drawable/category_explore"/>

        <TextView
            android:id="@+id/name_facebook"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/facebook_friend_pic"
            android:layout_centerHorizontal="true"
            android:text="dummy"
            android:textColor="@color/enloop_dark_gray"
            android:textSize="9sp"/>
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="7dp"
        android:layout_toRightOf="@+id/friend_image_container">

        <TextView
            android:id="@+id/wannabe_name"
            android:layout_width="wrap_content"
            android:layout_height="50dp"
            android:layout_centerVertical="true"
            android:text="dada"
            android:textColor="@color/enloop_dark_gray"
            android:textSize="15dp"/>

        <TextView
            android:id="@+id/facebook_friend_name"
            android:layout_width="250dp"
            android:layout_height="50dp"
            android:layout_centerVertical="true"
            android:layout_marginLeft="10dp"
            android:layout_toRightOf="@+id/wannabe_name"
            android:text=" has sent you a request"
            android:textColor="@color/enloop_dark_gray"
            android:textSize="15dp"/>


        <ImageButton
            android:id="@+id/later_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="40dp"
            android:background="@drawable/btn_nothanks"
            android:clickable="false"
            android:focusable="false"/>

        <ImageButton
            android:id="@+id/accept_friend_request"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginTop="40dp"
            android:layout_toRightOf="@+id/later_button"
            android:background="@drawable/btn_accept_text"
            android:clickable="false"
            android:focusable="false"/>


        <ImageButton
            android:id="@+id/invite_facebook_friends"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_marginRight="10dp"
            android:background="@drawable/btn_delete_notification"
            android:clickable="false"
            android:focusable="false"/>


    </RelativeLayout>


</RelativeLayout>

0 个答案:

没有答案