Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 单击即可更改适配器中的行_Java_Android_Baseadapter_Layout Inflater - Fatal编程技术网

Java 单击即可更改适配器中的行

Java 单击即可更改适配器中的行,java,android,baseadapter,layout-inflater,Java,Android,Baseadapter,Layout Inflater,我有一个带有按钮和文本视图的适配器。它代表朋友的请求 文本视图文本将是:您想接受X作为您的朋友吗 有两个按钮:一个用于接受,一个用于拒绝。按“拒绝”,它将从列表视图中删除该行,而按“接受”将文本更改为:X和Y现在是朋友 我的问题是如何获取行的位置并在按下按钮时更改它,同时保存视图以备下次访问 适配器:目前我没有适配器的正确数据结构,因此出于测试目的,仅使用字符串: public class FriendRequestAdapter extends BaseAdapter { Strin

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

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

有两个按钮:一个用于接受,一个用于拒绝。按“拒绝”,它将从列表视图中删除该行,而按“接受”将文本更改为: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;
    }
公共类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获得适配器的数据了