Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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
Android studio根据条件隐藏和显示按钮_Android - Fatal编程技术网

Android studio根据条件隐藏和显示按钮

Android studio根据条件隐藏和显示按钮,android,Android,我的android应用程序需要一个功能,该功能有一个按钮,需要根据一个TextView显示和隐藏。这是我的代码,我会进一步解释 public class currentCar extends Fragment implements AsyncResponse, AdapterView.OnItemClickListener { final String TAG = this.getClass().getName(); private ArrayList<AcceptCars> car

我的android应用程序需要一个功能,该功能有一个按钮,需要根据一个
TextView
显示和隐藏。这是我的代码,我会进一步解释

public class currentCar extends Fragment implements AsyncResponse, AdapterView.OnItemClickListener {
final String TAG = this.getClass().getName();
private ArrayList<AcceptCars> carList;
private ListView lvCurrent;
private FunDapter<AcceptCars> adapter;
SharedPreferences pref;

public currentCar() {
    // Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View v =  inflater.inflate(R.layout.fragment_current_car, container, false);

    ImageLoader.getInstance().init(UILConfig.config(getActivity()));

    lvCurrent = (ListView) v.findViewById(R.id.lvCurrent);

    pref = getActivity().getSharedPreferences("Login.conf", Context.MODE_PRIVATE);
    Log.d(TAG, pref.getString("username",""));

    PostResponseAsyncTask taskRead = new PostResponseAsyncTask(getActivity(), this);

    taskRead.execute("http://carkila.esy.es/carkila/current.php?acceptCarOwner="+pref.getString("username",""));

    return v;
}

@Override
public void processFinish(String s) {
    carList = new JsonConverter<AcceptCars>().toArrayList(s, AcceptCars.class);

    BindDictionary<AcceptCars> dict = new BindDictionary<AcceptCars>();

    dict.addDynamicImageField(R.id.ivImg1, new StringExtractor<AcceptCars>() {
        @Override
        public String getStringValue(AcceptCars item, int position) {
            return item.acceptImage;
        }
    }, new DynamicImageLoader() {
        @Override
        public void loadImage(String url, ImageView view) {

            ImageLoader.getInstance().displayImage(url, view);
        }
    });
    dict.addStringField(R.id.tvCarModel, new StringExtractor<AcceptCars>() {
        @Override
        public String getStringValue(AcceptCars item, int position) {
            return "Car Model: " + item.acceptModel;
        }
    });
    dict.addStringField(R.id.tvResDate, new StringExtractor<AcceptCars>() {
        @Override
        public String getStringValue(AcceptCars item, int position) {
            return "Date: " + item.acceptDate;
        }
    });
    dict.addStringField(R.id.tvResTime, new StringExtractor<AcceptCars>() {
        @Override
        public String getStringValue(AcceptCars item, int position) {
            return "Time: " + item.acceptTime;
        }
    });
    dict.addStringField(R.id.tvResLocation, new StringExtractor<AcceptCars>() {
        @Override
        public String getStringValue(AcceptCars item, int position) {
            return "Location: " + item.acceptResLocation;
        }
    });
    dict.addStringField(R.id.tvCarType, new StringExtractor<AcceptCars>() {
        @Override
        public String getStringValue(AcceptCars item, int position) {
            return "Car Type: " + item.acceptType;
        }
    });
    dict.addStringField(R.id.tvCapacity, new StringExtractor<AcceptCars>() {
        @Override
        public String getStringValue(AcceptCars item, int position) {
            return "Capacity: " + item.acceptCapacity;
        }
    });
    dict.addStringField(R.id.tvFuelType, new StringExtractor<AcceptCars>() {
        @Override
        public String getStringValue(AcceptCars item, int position) {
            return "Fuel Type: " + item.acceptFuelType;
        }
    });
    dict.addStringField(R.id.tvPlateNumber, new StringExtractor<AcceptCars>() {
        @Override
        public String getStringValue(AcceptCars item, int position) {
            return "Plate Number: " + item.acceptPlateNumber;
        }
    });
    dict.addStringField(R.id.tvPoster, new StringExtractor<AcceptCars>() {
        @Override
        public String getStringValue(AcceptCars item, int position) {
            return "Posted by : " + item.acceptCarOwner;
        }
    });
    dict.addStringField(R.id.tvRenter, new StringExtractor<AcceptCars>() {
        @Override
        public String getStringValue(AcceptCars item, int position) {
            return "Rented by: "+ item.renters;
        }
    });
    dict.addStringField(R.id.tvDestination, new StringExtractor<AcceptCars>() {
        @Override
        public String getStringValue(AcceptCars item, int position) {
            return "Destination: " + item.acceptDestination;
        }
    });

    dict.addStringField(R.id.tvResPrice, new StringExtractor<AcceptCars>() {
        @Override
        public String getStringValue(AcceptCars item, int position) {
            return "Destination: " + item.acceptPrice;
        }
    });
    dict.addStringField(R.id.tvresID, new StringExtractor<AcceptCars>() {
        @Override
        public String getStringValue(AcceptCars item, int position) {
            return ""+ item.acceptedID;
        }
    });
    dict.addStringField(R.id.tvstatus, new StringExtractor<AcceptCars>() {
        @Override
        public String getStringValue(AcceptCars item, int position) {
            return "Status: "+ item.payment;
        }
    });

    adapter = new FunDapter<>(
            getActivity(), carList, R.layout.layout_rented, dict);
    lvCurrent.setAdapter(adapter);
    lvCurrent.setOnItemClickListener(this);
}

@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
    AcceptCars selectedCars = carList.get(i);
        Intent in = new Intent(getActivity(), ownerStatus.class);
        in.putExtra("cars", selectedCars);
        startActivity(in);
}
}
在这里。当
Cars.payment
未支付时,
btnPaid
将显示和隐藏
btnDone
但当
Cars.payment
支付时,
btnPaid
将隐藏,而
btnDone
现在将隐藏。
希望你能理解我的解释并帮助我解决问题。谢谢先生:)

从您的评论中,您是说您需要检查:

if(Cars.payment) {
    btnDone.setVisibility(View.GONE);
    btnPaid.setVisibility(View.VISIBLE);
 } else {
    btnPaid.setVisibility(View.GONE);
    btnDone.setVisibility(View.VISIBLE);
 }

您在目的地通过所选车辆,进入
车主状态.class
。因此,在设置所选汽车的值时,只需检查
car.payment
,并设置代表状态的按钮的可见性

例如:-

您必须在该代码之前声明按钮,如下所示:-

 btnPaid = (Button) findViewById(R.id.btnPaid);
 btnDone = (Button) findViewById(R.id.btnDone);


if (Cars != null) {
        tvresID.setText("" + Cars.acceptedID);
        tvCarModel.setText(Cars.acceptModel);
        tvCarType.setText(Cars.acceptType);
        tvCapacity.setText(Cars.acceptCapacity);
        tvFuelType.setText(Cars.acceptFuelType);
        tvPlateNumber.setText(Cars.acceptPlateNumber);
        tvResDate.setText(Cars.acceptDate);
        tvResTime.setText(Cars.acceptTime);
        tvResLocation.setText(Cars.acceptResLocation);
        tvPoster.setText(Cars.acceptCarOwner);
        tvRenter.setText(Cars.renters);
        tvDestination.setText(Cars.acceptDestination);
        tvPrice.setText(Cars.acceptPrice);
        tvPaymentStatus.setText(Cars.payment);
        tvStatus.setText(Cars.payment);

        ImageLoader.getInstance().displayImage(Cars.acceptImage, ivImage);

       //here you just check the status of the car payment

       if(Car.payment.equalsignorecase("unpaid"))
      {
       btnDone.setVisibility(View.Gone);
       btnPaid.setVisibility(View.VISIBLE);
      }
      else
      {
      // what you want to do here
      }


    }

您可以在onCreate()中轻松完成此操作。您的问题是“如何隐藏按钮?”@brandall-我可以从xml中隐藏按钮,但我无法按照我对问题的解释完成此操作,先生。那么,您只需要这个吗?这回答了你的问题吗?在具有listview的类上或在
所有者状态
?@BatzPogi中,无论您在哪里检查付费状态并最初显示views@BatzPogi好!!一旦您对如何构建您的条件感到满意,请查看David的答案,以获得更简洁的代码编写方法。
btnDone.setVisibility(someCondition? View.GONE : View.VISIBLE);
btnPaid.setVisibility(!someCondition? View.GONE : View.VISIBLE);
 btnPaid = (Button) findViewById(R.id.btnPaid);
 btnDone = (Button) findViewById(R.id.btnDone);


if (Cars != null) {
        tvresID.setText("" + Cars.acceptedID);
        tvCarModel.setText(Cars.acceptModel);
        tvCarType.setText(Cars.acceptType);
        tvCapacity.setText(Cars.acceptCapacity);
        tvFuelType.setText(Cars.acceptFuelType);
        tvPlateNumber.setText(Cars.acceptPlateNumber);
        tvResDate.setText(Cars.acceptDate);
        tvResTime.setText(Cars.acceptTime);
        tvResLocation.setText(Cars.acceptResLocation);
        tvPoster.setText(Cars.acceptCarOwner);
        tvRenter.setText(Cars.renters);
        tvDestination.setText(Cars.acceptDestination);
        tvPrice.setText(Cars.acceptPrice);
        tvPaymentStatus.setText(Cars.payment);
        tvStatus.setText(Cars.payment);

        ImageLoader.getInstance().displayImage(Cars.acceptImage, ivImage);

       //here you just check the status of the car payment

       if(Car.payment.equalsignorecase("unpaid"))
      {
       btnDone.setVisibility(View.Gone);
       btnPaid.setVisibility(View.VISIBLE);
      }
      else
      {
      // what you want to do here
      }


    }