2012-06-22 3 views
0

Итак, у меня есть пользовательский интерфейс с кнопкой, которая отображает всплывающий пользовательский ввод при нажатии. Независимо от того, что вводится, следует добавить в arraylist и отобразить в списке на экране. Ниже приведен мой код. Я попытался использовать notifyDataSetChanged(), чтобы обновить представление, но никаких результатов.Обновить список для android

public class reminderList extends ListActivity 
{ 
ArrayList values = new ArrayList(20); 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    values.add(0,"Test"); 
    values.add(0,"test2"); 

    //final ListView listView = (ListView) findViewById(R.id.list); 
    setListAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, values)); 

    final Button addButton = (Button) findViewById(R.id.addTask); 

    addButton.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      // Perform action on click 
      alertPop(); 

     } 
    }); 
} 

private void alertPop() { 
    AlertDialog.Builder alert = new AlertDialog.Builder(this); 

    alert.setTitle("Enter new task"); 
    alert.setMessage("Input"); 

    // Set an EditText view to get user input 
    final EditText input = new EditText(this); 
    alert.setView(input); 

    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int whichButton) { 
      Editable uin = input.getText(); 
      // Do something with value! 
      values.add(0,uin); 

      //((ArrayAdapter<Object>) list.getAdapter()).notifyDataSetChanged(); 
     } 
    }); 

    alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int whichButton) { 
      // Canceled. 
     } 
    }); 

    alert.show(); 
    } 
} 

Любая помощь будет принята с благодарностью.

ответ

1

Попробуйте это,

Место notifyDataSetChanged() только после установки адаптера ....

например:

ArrayAdapter<String> adpt = new ArrayAdapter(this, android.R.layout.simple_list_item_1,values)

setListAdapter(adpt);

notifyDataSetChanged(adpt);

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