Android 片段中的setOnClickListener

Android 片段中的setOnClickListener,android,Android,我有一个简单的应用程序,它有一个Edittext和一个按钮。我的应用程序得到前两个Edittext中的数字,当按下按钮时,最后一个Edittext显示前两个Edittext的总和。到目前为止,我已经用Activity完成了所有这些,但我想用fragment完成这些。我有源代码,有导航抽屉,当我尝试在这段代码中做同样的事情时,我发现setOnClicklistener有问题 这是我的代码: package info.androidhive.slidingmenu; import android.a

我有一个简单的应用程序,它有一个Edittext和一个按钮。我的应用程序得到前两个Edittext中的数字,当按下按钮时,最后一个Edittext显示前两个Edittext的总和。到目前为止,我已经用Activity完成了所有这些,但我想用fragment完成这些。我有源代码,有导航抽屉,当我尝试在这段代码中做同样的事情时,我发现setOnClicklistener有问题

这是我的代码:

package info.androidhive.slidingmenu;
import android.app.Fragment;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;

public class FindPeopleFragment extends Fragment implements OnClickListener {
    EditText Num1, Num2, Eq;
    Button Sum;
    int S;

    public FindPeopleFragment() {
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    { 
        View InputFragmentView = inflater.inflate(R.layout.fragment_find_people, container, false);
        Num1 = (EditText) InputFragmentView.findViewById(R.id.Num1);
        Num2 = (EditText) InputFragmentView.findViewById(R.id.Num2);
        Eq = (EditText) InputFragmentView.findViewById(R.id.Eq);
        Sum = (Button) InputFragmentView.findViewById(R.id.Sum);

        Sum.setOnClickListener(new OnClickListener(){
            public void onClick(View view)
            {
                String N1 = Num1.getText().toString();
                int N11 = Integer.parseInt(N1);

                String N2 = Num2.getText().toString();
                int N22 = Integer.parseInt(N2);

                S = N11 + N22;

                Eq.setText("" + S);

            }
        });

        return InputFragmentView;
    }
}

或者就这样离开它,但是删除OnClickListener的实现。 前任: 公共类FindPeopleFragment扩展了片段实现OnClickListener{ ...
}

或者让它保持这样,但是删除OnClickListener的实现。 前任: 公共类FindPeopleFragment扩展了片段实现OnClickListener{ ... }

试着这样做:

Sum = (Button) InputFragmentView.findViewById(R.id.Sum);

Sum.setOnClickListener(this);

return InputFragmentView;
}


public void onClick(View v) {
    switch (v.getId()){
        case R.id.Sum:
            String N1 = Num1.getText().toString();
            int N11 = Integer.parseInt(N1);

            String N2 = Num2.getText().toString();
            int N22 = Integer.parseInt(N2);

            S = N11 + N22;

            Eq.setText("" + S);
            break;
    }
}
无论如何,请发布您的Logcat输出,以了解您面临的问题是什么

请尝试以下方法:

Sum = (Button) InputFragmentView.findViewById(R.id.Sum);

Sum.setOnClickListener(this);

return InputFragmentView;
}


public void onClick(View v) {
    switch (v.getId()){
        case R.id.Sum:
            String N1 = Num1.getText().toString();
            int N11 = Integer.parseInt(N1);

            String N2 = Num2.getText().toString();
            int N22 = Integer.parseInt(N2);

            S = N11 + N22;

            Eq.setText("" + S);
            break;
    }
}
package info.androidhive.slidingmenu;

import android.app.Fragment;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

 public class FindPeopleFragment extends Fragment {
EditText Num1, Num2, Eq;
Button Sum;
int S;

public FindPeopleFragment() {
}

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

    super.onCreateView(inflater, container, savedInstanceState);
    View InputFragmentView = inflater.inflate(
            R.layout.fragment_find_people, container, false);
    Num1 = (EditText) InputFragmentView.findViewById(R.id.Num1);
    Num2 = (EditText) InputFragmentView.findViewById(R.id.Num2);
    Eq = (EditText) InputFragmentView.findViewById(R.id.Eq);
    Sum = (Button) InputFragmentView.findViewById(R.id.Sum);
    ;

    Sum.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            String N1 = Num1.getText().toString();
            int N11 = Integer.parseInt(N1);

            String N2 = Num2.getText().toString();
            int N22 = Integer.parseInt(N2);

            S = N11 + N22;

            Eq.setText("" + S);
            Toast.makeText(getActivity(), "your Sum is : " + S,
                    Toast.LENGTH_LONG).show();
        }
    });
    return InputFragmentView;
}
}

无论如何,发布您的Logcat输出以了解您面临的问题是什么

您的问题是什么?您的问题是什么?我有一个错误:类型FindPeopleFragment必须实现继承的抽象方法DialogInterface.OnClickListener.onClick(DialogInterface,int)在此行中:公共类FindPeopleFragment扩展片段实现了OnClickListener{,并且此错误:类型视图中的方法setOnClickListener(View.OnClickListener)不适用于此行中的参数(FindPeopleFragment):Sum.setOnClickListener(this);1检查您的输入。删除引用onClickListener的输入,并在不使用“DialogInterface”的情况下再次添加它。2尝试按照上面的方式放置代码。我有一个错误:类型FindPeopleFragment必须实现继承的抽象方法DialogInterface.onClickListener.onClick(DialogInterface,int)在此行中:公共类FindPeopleFragment扩展片段实现了OnClickListener{,并且此错误:类型视图中的方法setOnClickListener(View.OnClickListener)不适用于此行中的参数(FindPeopleFragment):Sum.setOnClickListener(this);首先检查您的输入。删除指向onClickListener的输入,然后在不使用“DialogInterface”的情况下再次添加。第二,尝试按照我上面的方式来添加代码
package info.androidhive.slidingmenu;

import android.app.Fragment;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

 public class FindPeopleFragment extends Fragment {
EditText Num1, Num2, Eq;
Button Sum;
int S;

public FindPeopleFragment() {
}

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

    super.onCreateView(inflater, container, savedInstanceState);
    View InputFragmentView = inflater.inflate(
            R.layout.fragment_find_people, container, false);
    Num1 = (EditText) InputFragmentView.findViewById(R.id.Num1);
    Num2 = (EditText) InputFragmentView.findViewById(R.id.Num2);
    Eq = (EditText) InputFragmentView.findViewById(R.id.Eq);
    Sum = (Button) InputFragmentView.findViewById(R.id.Sum);
    ;

    Sum.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            String N1 = Num1.getText().toString();
            int N11 = Integer.parseInt(N1);

            String N2 = Num2.getText().toString();
            int N22 = Integer.parseInt(N2);

            S = N11 + N22;

            Eq.setText("" + S);
            Toast.makeText(getActivity(), "your Sum is : " + S,
                    Toast.LENGTH_LONG).show();
        }
    });
    return InputFragmentView;
}
}