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