Gần đây tôi đang làm việc trên một ứng dụng truyền thông Giáo viên Sinh viên dựa trên trực tuyến. Trong ứng dụng này có một phần mà Học sinh phải gửi cho giáo viên một yêu cầu để thêm vào lớp học của mình.Làm thế nào để thay đổi tên nút Listview Sau khi gửi yêu cầu máy chủ bên trong một lớp bộ điều hợp tùy chỉnh?
Đây là mã Tuỳ chỉnh Adaptor getView nơi mà tôi đang gửi yêu cầu bằng cách sử dụng nút listview custiom. Tôi muốn đặt mã asynctask bên trong lớp bộ điều hợp này. Nhưng tôi không thể làm điều đó. Bên trong listview phương thức onclick button không thể nhận ra phương thức asynctask. vì vậy tôi đã đặt phương thức asynctask vào một lớp khác. Tôi muốn đặt phương pháp asyntask trong lớp bộ điều hợp này vì tôi muốn thay đổi tên nút "Yêu cầu" thành "Đã gửi" sau khi gửi yêu cầu theo phương thức onPostExecute. Tôi đã thay đổi tên nút theo cách thủ công nhưng tôi muốn đảm bảo rằng người dùng yêu cầu được gửi 100%. Vì vậy, hãy cho tôi biết nơi tôi phải đặt phương pháp asynctask trong lớp bộ điều hợp này để tôi có thể thay đổi tên nút. Triệu Thanks in Advance.
package project.cc.student;
import java.util.ArrayList;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import com.example.connectifyclassroom.R;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class SubjectAdapter extends ArrayAdapter<Subject> {
ArrayList<Subject> contactList;
LayoutInflater vi;
int Resource;
ViewHolder holder;
int studentID;
SendRequest sendRequest;
String requestUrl;
ArrayList<NameValuePair> params;
public SubjectAdapter(Context context, int resource, ArrayList<Subject> objects,int studentID) {
super(context, resource, objects);
vi = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
Resource = resource;
contactList = objects;
this.studentID = studentID;
Log.d("bug", "studentID" + studentID);
params = new ArrayList<NameValuePair>();
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// convert view = design
View v = convertView;
if (v == null) {
holder = new ViewHolder();
v = vi.inflate(Resource, null);
holder.tvSubject = (TextView) v.findViewById(R.id.tvSujectName);
holder.tvTeacher = (TextView) v.findViewById(R.id.tvTeacherName);
holder.btSendRequest = (Button) v.findViewById(R.id.bt_send_subject_request);
holder.btSendRequest.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
Integer pos = (Integer)view.getTag();
Button b = (Button) view;
sendRequest = new SendRequest();
Toast.makeText(getContext(),"Please Wait...", Toast.LENGTH_SHORT).show();
params.add(new BasicNameValuePair("studentID", Integer.toString(studentID)));
params.add(new BasicNameValuePair("teacherID", Integer.toString(contactList.get(pos).getTeacherUid())));
params.add(new BasicNameValuePair("subjectID", Integer.toString(contactList.get(pos).getSubjectUid())));
sendRequest.setPair(params);
sendRequest.startRequest();
Toast.makeText(getContext(),"Request Sent", Toast.LENGTH_SHORT).show();
b.setText("Sent");
}
});
v.setTag(holder);
} else {
holder = (ViewHolder) v.getTag();
}
holder.tvSubject.setText(contactList.get(position).getSubject());
holder.tvTeacher.setText(contactList.get(position).getTeacher());
holder.btSendRequest.setTag(position);
return v;
}
static class ViewHolder {
public TextView tvSubject;
public TextView tvTeacher;
public Button btSendRequest;
}
}
ctor ở số 2 là gì? – Yeahia2508
hàm tạo tùy chỉnh -> SendRequest (RequestStatusCallback gọi lại) {this.callback = callback; } –