我可以在这样的片段中做一个意图吗?按下按钮后程序崩溃。
public class PagesFragment extends Fragment {
@Override
public void onStart() {
super.onStart();
Button sendBtn = (Button) getView().findViewById(R.id.sendEmail);
sendBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent i= new Intent("claimrewardemail");
startActivity(i);
}
});
答案 0 :(得分:0)
这是因为您的按钮未在onStart
中创建。请将代码移到onViewCreated
@Override
public void onViewCreated() {
Button sendBtn = (Button) getView().findViewById(R.id.sendEmail);
sendBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent i= new Intent("claimrewardemail");
startActivity(i);
}
});
答案 1 :(得分:0)
是的,你可以在这样的片段中做一个意图。
实施例
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.my_layout, container, false); //(1)
Button sendBtn = (Button) view.findViewById(R.id.sendEmail); //(2)
sendBtn.setOnClickListener(new View.OnClickListener() { //(3)
public void onClick(View view) {
Intent i= new Intent(getActivity(),WhereUWant2Navigate.class); //(4)
startActivity(i);
}
});
return view;
}
说明的
view.findViewById
从该视图中获取按钮。 线
(2) setOnClickListener
。 第(3)行。action
Intent
错误行(4) WhereUWant2Navigate.class
是您希望从activity
打开的第二个Fragment
。
<强>更新强>
问题所在 - http://tinypic.com/view.php?pic=29hf8h&s=8#.U74yDZSSzH8
当您的布局xml中设置了android:onClick="onClick"
时,会出现此问题。
您已经在类中定义了侦听器,因此需要在布局xml中定义。
所以从布局xml中删除它。
答案 2 :(得分:0)
需要logcat。你确定你是
Intent i= new Intent("claimrewardemail");
给你一个“真实”的东西?
像其他人一样,你应该对这样的代码没问题:
/** Called when the user clicks the Send button */
public void openMyActivity(View view) {
Intent intent = new Intent(this, LanguageGuideActivity.class);
startActivity(intent);
}
然后在按钮上(或任何你想要的地方)使用此功能。
像:
<Button
android:layout_width="150sp"
android:layout_height="wrap_content"
android:text="Calculate"
android:id="@+id/btn_calculate"
android:layout_gravity="center_horizontal"
android:onClick="openMyActivity" />