0

我在 ActionBar 上有一个项目。
当用户单击它时,应弹出对话框。

所以我试图通过这段代码选择这个部分

mItem1 = (Item) findViewById(R.id.about)

但是,我收到此错误,因此我无法定义。

Cannot cast from View to ClipData.Item

这是为什么?我该如何解决?

res/menu/main.xml

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

    <item
        android:id="@+id/about"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="About this App"/>

</menu>
4

2 回答 2

1

评论后

我不知道 ClipData 是关于什么的。我要做的就是在 ActionBar 上选择 About this App 作为显示对话框的触发器。然后我面临这个问题。你能用我的代码给我看吗?

我尝试回答以下问题:

创建一个菜单布局文件main.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:id="@+id/about"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="@string/about"/>
</menu>

创建活动MainActivty

public class MainActivity extends Activity {

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

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);

        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case R.id.about:
            new AlertDialog.Builder(this).setTitle("About").setMessage("Text about about").setPositiveButton("OK", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    // continue with delete
                }
            }).show();
            break;
        }
        return true;
    }
}
于 2013-08-14T19:13:26.777 回答
0

ClipData.Item 不是从 View 类派生的。findViewById 必须返回 View 或 View 的子类。因此,cannot cast 错误。

于 2013-08-14T19:13:52.293 回答