Android OnClickListener不处理片段

Android OnClickListener不处理片段,android,android-fragments,Android,Android Fragments,我正在尝试片段,但OnClickListener有问题。有人能帮忙吗 MainActivity.java public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.la

我正在尝试片段,但OnClickListener有问题。有人能帮忙吗

MainActivity.java

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        frag_one frag1=new frag_one();
        FragmentManager manager=getSupportFragmentManager();
        FragmentTransaction transaction=manager.beginTransaction();
        transaction.add(R.id.top,frag1,"");
        transaction.commit();
    }
}
frag_one.java

public class frag_one extends Fragment{
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return  inflater.inflate(R.layout.activity_frag_one,container,false);
    }

    public class calculator extends AppCompatActivity implements View.OnClickListener {
        TextView get_result;
        EditText get_num1;
        EditText get_num2;
        Button get_button;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_frag_one);
            get_result=(TextView)findViewById(R.id.result);
            get_num1=(EditText) findViewById(R.id.num1);
            get_num2=(EditText) findViewById(R.id.num2);
            get_button=(Button)findViewById(R.id.submit);
            get_button.setOnClickListener(this);
        }
        public void onClick(View v) {
            int num1=Integer.parseInt((get_num1.getText().toString()));
            int num2=Integer.parseInt((get_num2.getText().toString()));
            int sum=num1+num2;
            get_result.setText(Integer.toString(sum));
        }
    }
}
当我在正常活动中运行而不使用片段时。当我点击按钮时,计算就开始了。但当我转到片段时,它不起作用。请帮忙!thx


您在这里没有提及任何视图,希望这对您有所帮助

public class ABC extends Fragment implements OnClickListener {

View view;
Context context;

Button btnClick;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    view = inflater.inflate(R.layout.fragment, container, false);

    return view;
}

@Override
public void onAttach(Activity activity) {
    super.onAttach(activity);
    context = activity;
}

@Override
public void onDestroy() {
    super.onDestroy();

}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    btnClick = (Button) view.findViewById(R.id.btnClick);
    btnClick.setOnClickListener(this);


}

@Override
public void onClick(View v) {
    switch (v.getId()) {
    case R.id.btnClick:


        break;
    default:
        break;
    }

}

} 

您进行了第二个活动,该活动使用片段的布局,而不是实际将逻辑放入片段类中

public class frag_one extends Fragment implements View.OnClickListener {

    TextView get_result;
    EditText get_num1;
    EditText get_num2;
    Button get_button;

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

        get_result=(TextView)rootView.findViewById(R.id.result);
        get_num1=(EditText)rootView.findViewById(R.id.num1);
        get_num2=(EditText) rootView.findViewById(R.id.num2);
        get_button=(Button)rootView.findViewById(R.id.submit);
        get_button.setOnClickListener(this);

        return rootView;
    }

    public void onClick(View v) {
        // TODO: Check v.getId() == R.id.submit
        int num1=Integer.parseInt((get_num1.getText().toString()));
        int num2=Integer.parseInt((get_num2.getText().toString()));
        int sum=num1+num2;
        get_result.setText(Integer.toString(sum));
    }
}

我不明白你们为什么要在fragment下创建新的类,这里有一些特定的方法fragment@Saveen它不能是片段中的
public
。谢谢你指出这一点out@cricket_007如果你创建calculator.java。如何将其链接到片段以使其工作?您不需要创建calculator.java。。。你需要把大部分代码移到片段中,我没有创建任何东西。我格式化了问题中的代码。在一个Java文件的同一级别上不能有两个
public
类,因此如果
public class calculator
是一个嵌套类,同样,您不需要它,您可以在
onCreateView
中使用
findViewById
。。。开关(虽然正确)不是必需的是的,我们可以,但fragment onclick中的问题不起作用,所以我添加了简单的演示