Android 应用程序片段不断崩溃

Posted

技术标签:

【中文标题】Android 应用程序片段不断崩溃【英文标题】:Android App Fragment Keeps Crashing 【发布时间】:2014-03-08 12:54:15 【问题描述】:

我正在开发一个简单的应用程序来转换温度。我试图弄清楚如何处理用户输入的数字,然后处理它并给出转换。我搜索了不同的地方并找到了以下代码的一部分,但是当我实际单击按钮时,我的应用程序崩溃了。

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.view.View.OnClickListener;    
import org.w3c.dom.Text;

public class CelsiusFragment extends Fragment implements OnClickListener         
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
        View view = inflater.inflate(R.layout.celsiusfragment, container, false);

            Button celsiusbutton = (Button) view.findViewById(R.id.button_celsius);
            celsiusbutton.setOnClickListener(this);            
        return view;
    

    Button mButton;
    EditText mEdit;
    TextView mText;
   int output;

    @Override
    public void onClick(View view) 

        mButton.setOnClickListener(new View.OnClickListener() 
            public void onClick(View view)         
                int number = 0;
                int number1 = number;
                output = number1 + 2;
                TextView result = (TextView) view.findViewById(R.id.result);
                result.setText(String.valueOf(output));        
                    
        );
    

有没有你推荐的教程来完成这个? 谢谢!

【问题讨论】:

logcat 说什么? 我收到一条消息说有一个致命异常:E/AndroidRuntime:致命异常:main java.lang.NullPointerException 和 E/SurfaceTexture:[com.tempco/com.tempco.MainActivity]放弃:SurfaceTexture(0x0x1ef3958) 已被放弃! 你可以先不嵌套onClicks,然后删除你不使用的代码 你是说onClick函数?抱歉,我是 Android 开发新手。 【参考方案1】:

尝试像这样更改您的代码:

片段.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_
    android:layout_>

    <EditText
        android:id="@+id/value"
        android:layout_
        android:layout_
        android:inputType="number"
        android:ems="10"
        android:layout_gravity="center_horizontal" />

    <TextView
        android:id="@+id/result"
        android:layout_
        android:layout_
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <Button
        android:id="@+id/calculate_button"
        android:layout_
        android:layout_
        android:text="Calculate"
        android:layout_gravity="center_horizontal" />
</LinearLayout>

CelsiusFragment.java

public class CelsiusFragment extends Fragment 

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

        Button calculateButton = (Button) view.findViewById(R.id.calculate_button);
        calculateButton.setOnClickListener(new View.OnClickListener() 
            @Override
            public void onClick(View view) 
                TextView result = (TextView) view.findViewById(R.id.result);
                EditText value = (EditText) view.findViewById(R.id.value);
                int output = Integer.parseInt(value.getText().toString()) + 2;
                result.setText(String.valueOf(output));
            
        );
        return view;
    

【讨论】:

好的,我按照你说的做了,但现在我得到了这个错误:错误:CelsiusFragment 不是抽象的,并且不会覆盖 OnClickListener 中的抽象方法 onClick(View) 停止在你的片段中实现 OnClickListener。 id 是怎么做到的?对不起,我是这里的初学者。此外,我在te calculateButton 的视图中不断收到java.lang.NullPointerException。 与@user2512207 相同的错误 - “抽象且不会覆盖 OnClickListener 中的抽象方法 onClick(View)。”我没有 'impliments onClick...." 作为 OP 的措辞。

以上是关于Android 应用程序片段不断崩溃的主要内容,如果未能解决你的问题,请参考以下文章

底部导航片段应用程序不断崩溃

片段中的意图不断与清单崩溃问题,android studio

Android - 应用程序启动时片段 onCreate 崩溃

从父活动android获取片段编辑文本值

Android 应用程序崩溃(片段和 xml onclick)

谷歌地图Android片段崩溃