Android 包含listview的布局,无法切换到新活动onitemclick

Android 包含listview的布局,无法切换到新活动onitemclick,android,android-layout,android-listview,Android,Android Layout,Android Listview,我将listview作为主布局的一部分,listview上的Onclickevent不起作用。谁能告诉我哪里错了 下面是代码片段: public class HostListActivity extends ListActivity { public ArrayList<String> deviceList; static LinearLayout mainLayout; public ListView hostListView; public vo

我将listview作为主布局的一部分,listview上的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));

 }

}

您应该将此代码

registerForContextMenu(getListView());
将适配器设置到listview后,如果要将上下文菜单添加到项目中。如果您只想在项目单击时进行smth,则需要使用以下方法:

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

希望这有帮助。

您扩展了ListActivity,但没有使用此类中的任何功能。我已经注意到,这与不使用监听器有关。简单更改:

public class HostListActivity extends ListActivity {
公共类HostListActivity扩展活动{

会有帮助的

public class HostListActivity extends ListActivity {