Farklı bir sınıfta göstermek için bir uyarı iletişim kutusunda seçilen belirli öğeleri almayı ve fiyat olarak eklenecek değerleri almayı deniyorum. Seçilmiş olanı göstermesini istiyorum. Döngü için yanlış olduğunu biliyorum; Oraya ne gitmeli ki diziyi hashsetin pozisyon değerine sahibim. Ne olduklarını tanımlamak için 2 diziler ve HashSet kullanıyorumBelirli bir int hashset'i edinin
final String[] OptionsStringARR = {"Babysit", "Snorkelling", "Test1", "Test2"};
final int[] OptionsPricingARR = {10, 35, 14, 9};
final ArrayList OptionssSelected = new ArrayList();
final HashSet<Integer> optset = new HashSet<>();
boolean[] checked= {false,false,false,false};
public class OptionClass implements View.OnClickListener {
@Override
public void onClick(View v) {
new AlertDialog.Builder(ibMap.this)
.setTitle(guidedetail.getText() + " available options.")
.setMultiChoiceItems(OptionsStringARR, checked,
new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int selectedItemId,
boolean isSelected) {
if (isSelected) {
checked[selectedItemId]=true;
optset.add(selectedItemId);
} else if (optset.contains(selectedItemId)) {
checked[selectedItemId]=false;
optset.remove(Integer.valueOf(selectedItemId));
}
}
})
//.setMessage("//I need to put shit here. Array lists maybe. and check boxes")
.setCancelable(true)
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
}
)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//optset.addAll(OptionssSelected);
dialog.dismiss();
}
}
).create().show();
}
}
, HashSet sonra bilgi içeren diziler ne seçilmiş olduğunu belirlemek ve.
public class ConfirmClass implements View.OnClickListener {
@Override
public void onClick(View v) {
int TotalOpt=0;
for (int j = 0; j < optset.size(); j++){
int[] y = new int[optset.size()];
int x = y[j];
TotalOpt=TotalOpt+ OptionsPricingARR[x];
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < optset.size(); i++) {
if (i > 0) {
sb.append(", ");
}
sb.append(OptionsStringARR[i]);
}
new AlertDialog.Builder(ibMap.this)
.setTitle(guidedetail.getText())
.setMessage("Options Selected: " + sb +
"\nTotal: "+ TotalOpt)
.setCancelable(true)
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
}
)
.setPositiveButton("Confirm", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
startActivity(new Intent(ibMap.this, confirm.class));
}
}
).create().show();
}
}
Teşekkürler! Ayrıca uyarılar aracılığıyla uyarıların fiyatını göstermeye yardımcı olsaydınız harika olurdu! biri aşağıda gösterildiği gibi
Hoşgeldin taşması Stack için .. ben
static
başlatıcı bloğu kullandık yüzden, uygulamanızda seçenekleri sabit olduğunu varsaydım. Bir çok * kod yazdınız, ancak çok azının "hashset'te belirli bir int alma" ile ilgisi var gibi görünüyor ve açıklamanız net değil. Lütfen kodunuzu ideal olarak [mcve] olarak elde etmeye çalıştığınız şeyin en küçük bir örneğine indirin. Sorununuz Android'e özgü veya bir kullanıcı arayüzü öğesine özgü olmadıkça, yalnızca kopyala/yapıştır/derle/çalıştırdığımız bir konsol uygulamasında göstermeye çalışırdım. –