Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android Studio |按钮点击导航抽屉片段_Java_Android_Android Fragments - Fatal编程技术网

Java Android Studio |按钮点击导航抽屉片段

Java Android Studio |按钮点击导航抽屉片段,java,android,android-fragments,Java,Android,Android Fragments,我已经为这些错误挣扎了几天,我试着用谷歌搜索,但不幸的是,我找不到任何修复方法。 我还是Android Java的初学者 所以我有一个导航抽屉,里面有一个片段,我想在片段中放一个按钮,可以点击,但不知怎么的,当我把它放在我的布局中时,它就是不能识别按钮和一些东西 这是我的代码: 包nl.c99.c99nlapp; 导入android.os.Bundle; 导入android.support.annotation.Nullable; 导入android.support.v4.app.Fragme

我已经为这些错误挣扎了几天,我试着用谷歌搜索,但不幸的是,我找不到任何修复方法。 我还是Android Java的初学者

所以我有一个导航抽屉,里面有一个片段,我想在片段中放一个按钮,可以点击,但不知怎么的,当我把它放在我的布局中时,它就是不能识别按钮和一些东西

这是我的代码:

包nl.c99.c99nlapp;
导入android.os.Bundle;
导入android.support.annotation.Nullable;
导入android.support.v4.app.Fragment;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.Button;
导入android.widget.TextView;
/**
*由Souf于2015年9月21日创建。
*/
公共类第一个\u片段扩展了片段{
查看我的视图;
@可空
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
MyView=充气机。充气(R.layout.first_布局,容器,错误);
返回MyView;
视图根视图=充气机。充气(R.layout.first_布局,容器,false);
按钮c=(按钮)rootView.findViewById(R.id.button2);
c、 setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
onClick(v);//这是您在所附代码上编写的方法!!
}
});
}
}
无法解析符号“OnClickListener”(新OnClickListener)

将此添加到导入中:
import android.view.view.OnClickListener

您只需选择一个视图,因为您有2个我不知道为什么
rootView
MyView
那么您的
onClickListener()
应该是:

Button c = (Button) MyView.findViewById(R.id.button2);
    c.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            //your stuff here
        }
    });
从未使用参数“v”。(视图五)

只需点击(v)删除此

如果您这样做,您的代码应该可以工作:

 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    MyView = inflater.inflate(R.layout.first_layout, container, false);

    Button c = (Button) MyView.findViewById(R.id.button2);
    c.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            //Stuff there
        }
    });
  return MyView;
}
所有你的代码
您必须在代码末尾返回rootView,因为return表示“结束该方法”,因此它不会以相同的方法继续下面的代码

用以下代码替换您的代码:

package nl.c99.c99nlapp;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;

public class First_Fragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.first_layout, container, false);

        Button c = (Button) rootView.findViewById(R.id.button2);
        c.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //Write your code here.
            }
        });

        return rootView;
    }
}

将“return MyView;”写在onCreateView()方法的末尾。@MaheshB它已经在onCreateView的末尾,但不知怎么的,它在stackoverflow上。感谢您的快速回复,不幸的是错误没有改变,仍然发生MyView到底是什么?MyView从xml文件加载类的布局,正如您在我文章的第二个屏幕截图中所看到的那样。@S.A.再次阅读我的编辑并将我的代码复制粘贴到您的代码。@Thilek是的,我在布局中这样做了,但它不会让类中的错误消失。
package nl.c99.c99nlapp;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;

public class First_Fragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.first_layout, container, false);

        Button c = (Button) rootView.findViewById(R.id.button2);
        c.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //Write your code here.
            }
        });

        return rootView;
    }
}