Макет, содержащий просмотр списка, невозможно переключиться на новое действие onitemclick - PullRequest
0 голосов
/ 06 июня 2011

У меня есть просмотр списка как часть mainLayout, а Onclickevent при просмотре списка не работает. Кто-нибудь может дать мне указатель, где я не прав?

Вот фрагмент кода:

public class HostListActivity extends ListActivity {

    public ArrayList<String> deviceList;
    static LinearLayout mainLayout;
    public ListView hostListView;

   public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        designLayout();
        setContentView(mainLayout);
    }

    public void designLayout() {
        mainLayout = new LinearLayout(this);
        mainLayout.setOrientation(LinearLayout.VERTICAL);
        int lHeight= LinearLayout.LayoutParams.FILL_PARENT;
        int lWidth = LinearLayout.LayoutParams.WRAP_CONTENT;
        AddHostListView(lHeight,lWidth);
    }


    private void AddHostListView(int lHeight, int lWidth) {
        deviceList = new ArrayList<String>();
        deviceList.add("abc");
        deviceList.add("efg");        
        deviceList.add("hij");

        hostListView = new ListView(this);
        hostListView.setId(android.R.id.list);

        hostListView.setAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, deviceList));

        hostListView.setOnItemClickListener(new OnItemClickListener() { 
        @Override
        public void onItemClick(AdapterView<?> a, View v, int position, long id) {

        Intent myIntent = new Intent(v.getContext(), DirBrowserActivity.class);
            startActivity(myIntent);

            }

     });

    mainLayout.addView(hostListView, new LinearLayout.LayoutParams (lHeight,lWidth));

 }

// Класс DirBrowserActivity

открытый класс DirBrowserActivity расширяет Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {    
    super.onCreate(savedInstanceState);
       TextView tv = new TextView(this);
       tv.setText("Hello, DirBrowse View");
       setContentView(tv);
}

}

Ответы [ 2 ]

1 голос
/ 06 июня 2011

Вы расширяете ListActivity, но не используете никакой функции из этого класса.Я заметил, что это коррелирует с не работающим OnItemClickListener.Простое изменение:

public class HostListActivity extends ListActivity {

на public class HostListActivity extends Activity {

поможет.

0 голосов
/ 06 июня 2011

Вы должны поставить этот код

registerForContextMenu(getListView());

после установки адаптера для вашего списка, если вы хотите добавить контекстное меню для ваших элементов. Если вы просто хотите сделать что-то по щелчку элемента, вам нужно переопределить этот метод:

@Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);
    }

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...