2016-06-16 2 views
0

Я пробовал много разных методов, но не из них работает с моим кодом. Я знаю, как создать диалог оповещений, но всякий раз, когда я помещаю его в свой MainActivity, у меня есть куча ошибок, которые я не могу исправить. Может быть, я помещаю его в неправильное место ... или опечатки? Я не знаю, вот моя MainActivity, код работает отлично. Как я могу поместить там диалоговое окно оповещений, которое удаляет элемент ListView, когда пользователь нажимает «да»? Спасибо.Как удалить элементы списка с помощью диалогового окна предупреждения

public class MainActivity extends Activity { 

    EditText et; 
    ListView lv; 
    ArrayAdapter<String> adapter; 
    Button btn; 
    ArrayList<String> list = new ArrayList<String>(); 
    final Context context = this; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     et = (EditText) findViewById(R.id.editText); 
     lv = (ListView) findViewById(R.id.listView); 
     btn = (Button) findViewById(R.id.button); 
     adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1); 
     lv.setAdapter(adapter); 
     LoadPreferences(); 
     btn.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       String task = et.getText().toString(); 


       adapter.add(task); 
       adapter.notifyDataSetChanged(); 
       SavePreferences("LISTS", task); 
      } 
     });} 

    protected void SavePreferences(String key, String value) { 
     // TODO Auto-generated method stub 
     SharedPreferences data = PreferenceManager.getDefaultSharedPreferences(this); 
     SharedPreferences.Editor editor = data.edit(); 
     editor.putString(key, value); 
     editor.commit(); 


    } 

    protected void LoadPreferences(){ 
     SharedPreferences data = PreferenceManager.getDefaultSharedPreferences(this); 
     String dataSet = data.getString("LISTS", " "); 

     adapter.add(dataSet); 
     adapter.notifyDataSetChanged(); 
    } 
} 

Вот это Диалог оповещения Я пытаюсь использовать:

@Override 
public void onItemClick(AdapterView<?> parent, 
     View view, int position, long id) { 

    AlertDialog alertDialog = new AlertDialog.Builder(this).create(); 
    alertDialog.setTitle("Hello My Name is"); 
    alertDialog.setMessage("" + mNameList.get(position)); 
    alertDialog.setButton("OK", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int which) { 
      Toast.makeText(getApplicationContext(), "You clicked on OK", Toast.LENGTH_SHORT).show(); 
     } 
    }); 
    alertDialog.setButton2("Remove", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int which) { 

      Toast.makeText(getApplicationContext(), "Removed from list", Toast.LENGTH_SHORT).show(); 
     } 
    }); 

    alertDialog.show(); 
} 

И я пытаюсь поставить его прямо под:

adapter.add(task); 
      adapter.notifyDataSetChanged(); 
      SavePreferences("LISTS", task); 
     } 
    });} 

Это где он должен идти?

+0

Сообщите об ошибке, пожалуйста, –

+0

В этом коде нет ошибки. Я просто не знаю, как создать диалоговое окно предупреждения, которое удаляет элемент списка, или почти все слова становятся красными с ошибками. –

+0

Вы сказали: «Всякий раз, когда я помещаю его в свою главную роль, у меня есть ошибка в связке, которую я не могу исправить». Где ошибки? –

ответ

0

С этим вы хотите:

  • Получить строку, вы желающему удалить
  • Удалите его из строкового массива, который используется для заполнения ListView
  • Update в ListView с новым содержимым строки.

    // Make the app remove an entry if the user "LONG CLICKS" the entry 
        if (listViewList != null) { 
         listViewList.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 
          @Override 
          public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { 
           String strTemp = listViewList.getItemAtPosition(position).toString(); 
           Toast.makeText(CustomListActivity.this, "Removed " + strTemp, Toast.LENGTH_SHORT).show(); 
           strWords.remove(position); 
           ArrayAdapter<String> adapter = new ArrayAdapter<>(CustomListActivity.this, R.layout.spinner_list, strWords); 
           listViewList.setAdapter(adapter); 
           return false; 
          } 
         }); 
        } 
    

Этот пример используется в другой ситуации, это из приложения, которое я сделал в последнее время - хотя и немного сократить, так что вы видите только то, что вам нужно. Очень легко адаптироваться к работе с диалоговым окном предупреждения.

+0

Спасибо, но я понятия не имею, как это сделать ... –

+0

Дайте мне несколько минут Я буду прыгать на ПК и редактировать с помощью кода :) – Geoff

+0

@RedJunior обновлен, любая помощь? – Geoff

Смежные вопросы