Я попытался изменить вид изображения в android listview. Если у меня есть выбор строки из списка, есть 2 изображения. Они присутствуют, не посещают.change imageview в файле адаптера для Android android lisview
По умолчанию статус элемента присутствовал. если пользователь нажимает на изображение посетителя., функциональность выполняется, тогда необходимо изменить изображение посетителя, чтобы его не посещать.
Если пользователь нажимает изображение un-sttend, функция wll будет выполнена, тогда вам нужно будет изменить изображение без участия, чтобы посещать изображение.
У меня есть следующий код. Функциональность работает нормально. но изображение не изменилось во время выполнения. Проверьте код и дайте мне решение.
public class Today_List_Adapter extends BaseAdapter {
private Activity activity;
static ArrayList<HashMap<String, String>> data;
private static LayoutInflater inflater=null;
AlertDialog.Builder alertDialog;
public ImageLoader imageLoader;
String success,error;
JSONParser jsonParser = new JSONParser();
public Today_List_Adapter(Activity a, ArrayList<HashMap<String, String>> d) {
activity = a;
data=d;
inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public int getCount() {
return data.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;
if(convertView==null)
vi = inflater.inflate(R.layout.listof_today, null);
TextView cartitle = (TextView)vi.findViewById(R.id.today_producttitle);
ImageView carimage = (ImageView)vi.findViewById(R.id.today_productimage);
TextView cardate = (TextView)vi.findViewById(R.id.today_productdate);
TextView cartime = (TextView)vi.findViewById(R.id.today_producttime);
TextView carddesc = (TextView)vi.findViewById(R.id.today_productdesc);
final ImageView cardetails = (ImageView)vi.findViewById(R.id.today_productimage_detail);
ImageView carcheckin = (ImageView)vi.findViewById(R.id.today_productimage_attend);
HashMap<String, String> Order = new HashMap<String, String>();
Order = data.get(position);
cartitle.setText(Order.get(TodayList.TAG_CAR_TITLE));
cardate.setText(Order.get(TodayList.TAG_CAR_SDATE)+" "+"-"+" "+Order.get(TodayList.TAG_CAR_EDATE));
cartime.setText(Order.get(TodayList.TAG_CAR_TIME));
carddesc.setText(Order.get(TodayList.TAG_CAR_DESC));
imageLoader=new ImageLoader(activity.getApplicationContext());
imageLoader.DisplayImage(Order.get(TodayList.TAG_CAR_IMAGE), carimage);
final String carid = Order.get(TodayList.TAG_CAR_ID);
final String shareurl = Order.get(TodayList.TAG_CAR_EURL);
final String plantoattend = Order.get(TodayList.TAG_CAR_STATUS);
if ((!(LoginForm.GoogleId.equalsIgnoreCase("No user found")))
|| (!(LoginForm.FacebookId.equalsIgnoreCase("No user found")))
|| (!(CommonUtils.login_status
.equalsIgnoreCase("No user found")))) {
if(plantoattend.equalsIgnoreCase("N")){
cardetails.setImageResource(R.drawable.attend);
}
else {
cardetails.setImageResource(R.drawable.unattend);
}
}
else {
cardetails.setImageResource(R.drawable.attend);
}
cardetails.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if(plantoattend.equalsIgnoreCase("N")){
alertDialog = new AlertDialog.Builder(activity);
alertDialog.setMessage("You're going! Do you want to share the meet?");
alertDialog.setPositiveButton("Share", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, shareurl);
sendIntent.setType("text/plain");
cardetails.setImageResource(R.drawable.unattend);
activity.startActivityForResult(Intent.createChooser(sendIntent, "Share via"),1000);
}
});
alertDialog.setNegativeButton("Not now", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
cardetails.setImageResource(R.drawable.unattend);
new AttendMeet().execute(carid);
}
});
alertDialog.show();
}
else{
if (cd.isConnectingToInternet()) {
new UnAttendMeet().execute(carid);
cardetails.setImageResource(R.drawable.attend);
//Today_List_Adapter.this.notifyDataSetChanged();
}
else {
alert.showAlertDialog(activity, "Internet Connection Error",
"Please Try Again Later", false);
return;
}
}
}
}
});
carcheckin.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, shareurl);
sendIntent.setType("text/plain");
activity.startActivity(sendIntent);
}
});
return vi;
}
public void onActivityResult(int requestCode, int resultCode, Intent data,String... args) {
//super.onActivityResult(requestCode, resultCode, data);
switch(requestCode) {
case 1000:
Today_List_Adapter.this.notifyDataSetChanged();
break;
}
}
class AttendMeet extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
protected String doInBackground(String... args) {
try {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("user_id", CommonUtils.login_status));
params.add(new BasicNameValuePair("event_id", args[0]));
JSONObject json = jsonParser.makeHttpRequest(url_attendmeet,
"POST", params);
Log.d("Attend Meet", json.toString());
success = json.getString("status");
if (success.equalsIgnoreCase("ok")) {
}
else
{
error = json.getString("error");
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(String file_url) {
if (success.equalsIgnoreCase("ok")) {
cardetails.setImageResource(R.drawable.unattend);
Toast.makeText(activity.getApplicationContext(),
"The meet was successfully added on attending meet", Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(activity.getApplicationContext(),
error, Toast.LENGTH_LONG).show();
}
}
}
class UnAttendMeet extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
protected String doInBackground(String... args) {
try {
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("user_id", CommonUtils.login_status));
params.add(new BasicNameValuePair("event_id", args[0]));
JSONObject json = jsonParser.makeHttpRequest(url_unattendmeet,
"POST", params);
Log.d("UnAttend Meet", json.toString());
success = json.getString("status");
if (success.equalsIgnoreCase("ok")) {
}
else
{
error = json.getString("error");
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(String file_url) {
if (success.equalsIgnoreCase("ok")) {
cardetails.setImageResource(R.drawable.attend);
Toast.makeText(activity,
"The meet was successfully removed from attending meet", Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(activity,
error, Toast.LENGTH_LONG).show();
}
}
}
}
EDIT:
Я обновил свой код.
Теперь я запустить приложение, я получаю результаты, как:.
Если пользователь нажимает на ПРИСУТСТВУЙТЕ изображение, функциональность будет сделано хорошо, то изображение было изменено с озаботиться не-посещают image.But. снова я нажимаю на изображение без участия., вам нужно сделать вызов класса UnAttned. Но он вызывает только класс Attend. Не могли бы вы проверить мой код и дать мне решения.
Вы отлаживали, что код 'cardetails.setImageResource' выполняется или нет, пока вы нажимаете изображение? –
@MysticMagic Am get the toast message « « Встреча была успешно добавлена на посещение встречи ». Но изображение еще не изменилось. –
Попробуйте вызвать' yourAdapter.notifyDataSetChanged(); 'после вызова' setImageResource'. –