上下文菜单和列表视图的问题

时间:2013-11-27 22:22:32

标签: android eclipse android-layout listview contextmenu

我正在尝试制作应用,但我遇到了一些菜单问题。 我是新的adroid编程和想法maby你们其中一个人有我的问题的解决方案。

我希望列表视图能够正常工作,可以点击。我目前正在列表视图中使用上下文菜单。我有2个列表视图,一个用于自己的“城镇”,一个用于ruter“溃败”。但是,当我点击他们中的一个时,我会看到相同的上下文菜单,这里有4个城市名称。

怎么办?!抱歉英文不好。

活动主要代码:

    package com.example.nattogdag;

    import android.os.Bundle;
    import android.app.Activity;
    import android.view.ContextMenu;
    import android.view.ContextMenu.ContextMenuInfo;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.ArrayAdapter;
    import android.widget.BaseAdapter;
    import android.widget.ListView;
    import android.widget.Toast;

    public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ListView lv = (ListView) findViewById(R.id.listView);      
        String[] list = new String[] {"Byer"};
        BaseAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);

        lv.setAdapter(adapter);

        registerForContextMenu(lv);

        ListView lv2 = (ListView) findViewById(R.id.listView2);      
        String[] list2 = new String[] {"Ruter"};
        BaseAdapter adapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list2);

        lv.setAdapter(adapter2);

        registerForContextMenu(lv2);

    }


    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
            ContextMenuInfo menuInfo) {
        // TODO Auto-generated method stub
        super.onCreateContextMenu(menu, v, menuInfo);

        menu.add("Oslo");
        menu.add("Bergen");
        menu.add("Stavanger");
        menu.add("Trondheim");

    }


    @Override
    public boolean onContextItemSelected(MenuItem item) {
        // TODO Auto-generated method stub
        super.onContextItemSelected(item);


        if(item.getTitle() == "Oslo")

        {
            Toast.makeText(this, "Du har valgt Oslo", Toast.LENGTH_LONG).show();
        }

        if(item.getTitle() == "Bergen")

        {
            Toast.makeText(this, "Du har valgt Bergen", Toast.LENGTH_LONG).show();
        }

        if(item.getTitle() == "Stavanger")

        {
            Toast.makeText(this, "Du har valgt Stavanger", Toast.LENGTH_LONG).show();
        }

        if(item.getTitle() == "Trondheim")

        {
            Toast.makeText(this, "Du har valgt Trondheim", Toast.LENGTH_LONG).show();
        }

        return true;
    }
    }

XML代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <ListView
        android:id="@+id/listView"
        android:layout_width="150dp"
        android:layout_height="50dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" >
    </ListView>

    <ListView
        android:id="@+id/listView2"
        android:layout_width="150dp"
        android:layout_height="50dp"
        android:layout_alignLeft="@+id/listView"
        android:layout_below="@+id/listView"
        android:maxHeight="200dp"
        android:minHeight="100dp" >
    </ListView>

</RelativeLayout>

这是添加菜单项的更好方法吗?

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item 
        android:id="@+id/Byer" 
        android:title="Byer">
        <menu>Oslo</menu>
        <menu>Bergen</menu>
        <menu>Trondheim</menu>
        <menu>Stavanger</menu>
    </item>

    <item 
        android:id="@+id/Ruter" 
        android:title="Ruter">
        <menu>Grønnland</menu>
        <menu>Majorstuene</menu>
    </item>

</menu>

0 个答案:

没有答案