为什么我的“约”标签不在R中识别

时间:2016-01-29 20:03:00

标签: java android android-fragments android-fragmentactivity

我正在尝试使用本教程http://javatechig.com/android/android-dialog-fragment-example为我自己的教育目的实现为我创建的应用程序的对话框。

在我的notepadlistactivity.java中,我有一节

  Location Code Effective Date
0          WAU1    06/05/2014 
0          WAU1    06/05/2014 
0          WAU1    06/12/2014 
1          WAU2    06/05/2014 
1          WAU2    06/05/2014 
2          WAU3    06/05/2014 
3          WAU4    06/05/2014 
4          WAU5            NaN
5          WAU6    06/05/2014 

对于所有其他的R.id ....它识别点后的单词,但是对于R.id.about,则不识别。我已经检查了R文件,并且已经定义了,所以我无法理解出了什么问题。

有关您的信息,这是我的MyDialogFragment.java,

 @Override
    public boolean onOptionsItemSelected(MenuItem item)
    {
        switch (item.getItemId())
        {
        case R.id.addNote:
            openNote(new Note(noteManager));
            break;

            case android.R.id.home:
            break;

            case android.R.id.about:
                FragmentManager fm = getFragmentManager();
                MyDialogFragment dialogFragment = new MyDialogFragment ();
                dialogFragment.show(fm, "Sample Fragment");
            default:
            return false;
        }
        return true;
    }

这是我的fragment_sample_dialog.xml,

package com.nicae.Notepad.note_list;

import android.app.DialogFragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;

import com.nicae.Notepad.R;

public class MyDialogFragment extends DialogFragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_sample_dialog, container, false);
        getDialog().setTitle("Simple Dialog");
        return rootView;

        Button dismiss = (Button) rootView.findViewById(R.id.dismiss);
        dismiss.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                dismiss();
            }
        });

    }

编辑对应下面的评论:

这是我的activity_notepad_list.xml,

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:padding="10dp"
    android:orientation="vertical"
    android:id="@+id/about">

   <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Lorem ipsum dolor sit amet..."
        android:textSize="20dp" />

    <Button
        android:id="@+id/dismiss"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Dismiss" />
</LinearLayout>

2 个答案:

答案 0 :(得分:2)

请注意,android.R.idR.id不同,具体取决于当前类所在的当前包名称和/或import语句。 android.R.id是指Android API中的标准值。您可能希望改为使用R.id

答案 1 :(得分:1)

这是因为您对LinearLayout和菜单项使用相同的ID。从LinearLayout中删除android:id="@+id/about"(或将其更改为"@+id/aboutLayout")。

使用,

case R.id.about:   // instead of android.R.id.about
    FragmentManager fm = getFragmentManager();
    MyDialogFragment dialogFragment = new MyDialogFragment ();
    dialogFragment.show(fm, "Sample Fragment");