我有一个带按钮和文本视图的适配器。它代表了朋友的要求。
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>