Java 单击即可更改适配器中的行
我有一个带有按钮和文本视图的适配器。它代表朋友的请求 文本视图文本将是:您想接受X作为您的朋友吗 有两个按钮:一个用于接受,一个用于拒绝。按“拒绝”,它将从列表视图中删除该行,而按“接受”将文本更改为:X和Y现在是朋友 我的问题是如何获取行的位置并在按下按钮时更改它,同时保存视图以备下次访问 适配器:目前我没有适配器的正确数据结构,因此出于测试目的,仅使用字符串:Java 单击即可更改适配器中的行,java,android,baseadapter,layout-inflater,Java,Android,Baseadapter,Layout Inflater,我有一个带有按钮和文本视图的适配器。它代表朋友的请求 文本视图文本将是:您想接受X作为您的朋友吗 有两个按钮:一个用于接受,一个用于拒绝。按“拒绝”,它将从列表视图中删除该行,而按“接受”将文本更改为:X和Y现在是朋友 我的问题是如何获取行的位置并在按下按钮时更改它,同时保存视图以备下次访问 适配器:目前我没有适配器的正确数据结构,因此出于测试目的,仅使用字符串: public class FriendRequestAdapter extends BaseAdapter { Strin
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;
}
公共类FriendRequestAdapter扩展了BaseAdapter{
字符串mName;
语境;
公共FriendRequestAdapter(字符串名称、上下文){
this.mName=名称;
this.mContext=上下文;
}
@凌驾
public int getCount(){
返回1;
}
@凌驾
公共对象getItem(int位置){
返回null;
}
@凌驾
公共长getItemId(int位置){
返回0;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
if(convertView==null){
LayoutInflater mInflater=(LayoutInflater)
mContext.getSystemService(活动.布局\充气机\服务);
convertView=mInflater.充气(R.layout.friend\u request\u layout,null);
}
TextView发送者名称=(TextView)convertView.findViewById(R.id.wannabe\u名称);
如果(mName.length()>11){
mName=mName.substring(0,12);
}
发送方名称.setText(mName);
ImageButton好友请求接受=(ImageButton)convertView.findViewById(R.id.accept好友请求);
friend\u请求\u已接受。setOnClickListener(新视图。OnClickListener(){
@凌驾
公共void onClick(视图v){
新建异步任务(){
@凌驾
受保护的Void doInBackground(Void…参数){
试一试{
新的APIService().confirmInvite();
}捕获(IOE异常){
e、 printStackTrace();
}
返回null;
}
};
}
});
返回视图;
}
充气布局:
<?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>
将布局和适配器的代码放入“我怀疑保存视图的必要性,因为您应该接受或拒绝frnd请求,下次frnd请求将不被接受。”visible@MukeshRana我的意思是,下次用户打开应用程序并检查好友请求时,所做的更改应该在那里,就像在友谊中一样accepted@Dilavar我编辑了这篇文章,请检查代码:)这样您就可以从webapi或db获得适配器的数据了