开发者

Removing ListView after user selects item

This one should be pretty simple. The use case is that I have a ListView generated by the results of a voice search. Once the user selects the appropriate item from the list, I want the list to disappear. This list (its contents) will not be needed again. I know this can be done in a number of ways, but I am not experienced enough to know which is best (quickest, most efficient with mobile resources...etc.) I have used clearChoices(), setVisibility(2) 'Gone'. Anyway I thought I would go to the source for a proper answer.

Thanks as always for your help. Here is the relevant code, if you like:

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == VOICE_RECOGNITION_REQUEST_CODE && resultCode == RESULT_OK) {

        mList = (ListView) findViewById(R.id.list);

        ArrayList<String> matches = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);
        mList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, matches));

        mList.setTextFilterEnabled(true);

        mList.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                String description = ((TextView) view).getText().toString();
                final EditText etDesc = (EditText) findViewById(R.id.EditDescription);

                etDesc.setText(description);
         开发者_如何学Python       mList.setVisibility(2);
            }
        });
    }
}   


Well, I don't know exactly what is what you are trying to accomplish. You can solve this by creating a Dialog containing the list, and you can either dismiss the Dialog as soon as they press the item, or you can do it with an "Ok" button.

Also you can separate your activity into two, and whenever the item is selected from the list, you finish the activity and go back to the previous activity.

Another solution, is that once the item is selected then you do mList.setVisibility(View.Gone) (or View.Invisible depending on what you want to accomplish).

Any of these solutions can work, and you would have to decide what works best for the logic of your app. I hope that helps

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜