Android studio根据条件隐藏和显示按钮
我的android应用程序需要一个功能,该功能有一个按钮,需要根据一个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
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
}
}