Spinner
ürününü AlertDialog
kullanarak silinen öğeyi silen bir Activity
yapmaya çalışıyorum. Henüz bir şey silmiyorum, işe yaradığından emin olmak için bir Tost ekledim. Bir Spinner öğesinden bir AlertDialog kullanarak nasıl silinir
public class SpinnerActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_spinner);
final Spinner spinner = (Spinner) findViewById(R.id.spinner);
final Context context = getApplicationContext();
// Create an ArrayAdapter using the string array and a default spinner layout
final ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.planets_array, android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
int selectionCurrent = spinner.getSelectedItemPosition();
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if (selectionCurrent != position) {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
// set title
alertDialogBuilder.setTitle(R.string.dialogtitle);
//set dialog message
alertDialogBuilder.setMessage(R.string.dialogtext).setCancelable(false)
.setPositiveButton(R.string.si,new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
// if this button is clicked,
Toast.makeText(context, "Eliminar", Toast.LENGTH_SHORT).show();
}
}) .setNegativeButton(R.string.no
, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
// if this button is clicked, do nothing
dialog.cancel();
}
});
alertDialogBuilder.setView(spinner);
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();
}
selectionCurrent = position;
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
ben kod çalıştırmasına
, aşağıdaki hata görüntülenir:Bu
benim kodudur benalertDialog.show();
önce
((ViewGroup)spinner.getParent()).removeView(spinner);
kullanmaya çalıştı
java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
ama yine de çalışmıyor.
Diyor ki android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
herkes sorunu çözmek için nasıl bilir?
String[] mTestArray;
kaynaklarından verileri alın:
mTestArray = getResources().getStringArray(R.array.planets_array);
bu dizi ArrayAdapter şişirin:
final ArrayList<String> list =new ArrayList<String>(Arrays.asList(mTestArray));
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, list);
Ve nihayet kaldırmak
Yalnızca 'AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder (SpinnerActivity.this) ' –
@MD'de' Activity context 'seçeneğini kullanın. Bunu yaptım ancak şimdi tamamen spinner kaldırır. –
Bu hatayı tam olarak nereden alıyorsunuz, çünkü onları kaldırmaya çalıştığınızı görmüyorum? [Buraya kendi listenizle birlikte bakmaya bakın] isteyebilirsiniz (http://stackoverflow.com/questions/19820803/android-spinner-using-arrayliststring/19820912#19820912) ve ardından listeyi listeden kaldırın ve bağdaştırıcıyı güncelleyin. görünümü kendiliğinden kaldırmaya çalışmayın. – codeMagic