Показать список в всплывающем окне - Android - PullRequest
2 голосов
/ 27 февраля 2012

Я делаю какой-то проект в Android и не могу что-то придумать.У меня есть действие, которое включает в себя три кнопки, редактирование текста и представление списка.

enter image description here

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

public class Notepadv1 extends ListActivity implements OnClickListener {

    private WordsDbAdapter mDbHelper;
    private Button selectAllButton;
        private PopupWindow mPopup;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        selectAllButton = (Button)findViewById(R.id.selectAll);
        selectAllButton.setOnClickListener(this);

        mDbHelper = new WordsDbAdapter(this);
        mDbHelper.open();
        fillData();
    }

    public void onClick(View v) {
        switch(v.getId()){
            case(R.id.selectAll):
                selectAll();
                break;
        }
    }

    private void selectAll(){
    }

    private void fillData() {

        Cursor c = mDbHelper.fetchAllNotes();
        startManagingCursor(c);

        String[] from = new String[] { WordsDbAdapter.KEY_WORD };
        int[] to = new int[] { R.id.text1 };


        SimpleCursorAdapter notes = new SimpleCursorAdapter(this, R.layout.words_row, c, from, to);
        setListAdapter(notes);
    }

}

Ответы [ 3 ]

16 голосов
/ 27 февраля 2012

Показать простой диалог оповещения со списком:

final CharSequence[] items = {"Red", "Green", "Blue"};

AlertDialog.Builder builder = new AlertDialog.Builder(this);

builder.setTitle("Pick a color");
builder.setItems(items, new DialogInterface.OnClickListener() {

   public void onClick(DialogInterface dialog, int item) {
        Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();
   }

});

AlertDialog alert = builder.create();

alert.show();
10 голосов
/ 27 февраля 2012

Да, вы можете сделать это.

1-й способ: определить действие как диалог с атрибутом ниже в файле AndroidManifest.xml:

<activity android:theme="@android:style/Theme.Dialog" />

2-й способ: Вы можете надуть макет XML внутри диалогового окна, как показано ниже:

Dialog dialog = new Dialog(context);
LayoutInflater li = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = li.inflate(R.layout.my_layout, null, false);
dialog.setContentView(v);
dialog.show();

, например:

edit: ссылка исправлена ​​

Диалог Android с ListView .

0 голосов
/ 26 июня 2019

Если вы используете собственный ArrayAdapter, используйте setAdapter():

AlertDialog.Builder builder = new Builder(this)
    .setTitle("Dialog Title")
    .setAdapter(new CustomAdapter(context, items, ...), (dialog, itemPosition) -> {
      // Handle item click
    });
builder.show();
...