0

ActionBar にアイテムがあります。
ユーザーがそれをクリックすると、ダイアログがポップアップするはずです。

だから私はこのコードでこの部分を選択しようとしています

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

ただし、このエラーが発生するため、定義できません。

Cannot cast from View to ClipData.Item

何故ですか?どうすれば修正できますか?

res/メニュー/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 でこのアプリについてを選択することだけです。それから私はこの問題に直面しています。私のコードを使って見せてもらえますか?

私は次のように質問に答えようとします:

メニュー レイアウト ファイル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 は、ビューまたはビューのサブクラスを返す必要があります。したがって、エラーをキャストできません。

于 2013-08-14T19:13:52.293 に答える