简体   繁体   中英

Force Close in the android app

Android Studio

hi guys.

I wanted to make a simple app for android which uses << OnCheckedChangeListener >> for a check box in android studio. I looked at the questions which were like mine for example link , but I found no problem in my codes. These Are Mine. Thanks a lot in advance.

This Is My MainActivity.java

package com.example.gna.myapplication;

import android.app.Activity;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;

public class MainActivity extends Activity {

    public CheckBox chbox=(CheckBox)findViewById(R.id.CH1);
    public TextView txt1 =(TextView)findViewById(R.id.TXT1);

    CompoundButton.OnCheckedChangeListener list=new       CompoundButton.OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if(isChecked)
                txt1.setText("A New Era");
            else
                txt1.setText("MasterByte");

        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState){ 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        chbox.setOnCheckedChangeListener(list);
    }
}

And The XML is:

activity_main.Xml,

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res /android" xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".MainActivity"
    android:id="@+id/rl">

    <TextView android:text="MasterByte"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="40dp"
        android:textColor="#F00FF0"
        android:id="@+id/TXT1"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="74dp" />

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Click Here"
        android:id="@+id/CH1"
        android:textSize="30dp"
        android:layout_below="@+id/TXT1"
        android:layout_alignRight="@+id/TXT1"
        android:layout_alignEnd="@+id/TXT1"
        android:layout_marginTop="55dp" />

</RelativeLayout>

OKAY. My problem is that the app won't start and it shows force close error. I wanted to use exception classes and [try(),catch(),finally()] but I didn't know how . If you Know how to do That , I'm waiting :D Sorry for my bad English!

move the initialization of

 public CheckBox chbox=(CheckBox)findViewById(R.id.CH1);
 public TextView txt1 =(TextView)findViewById(R.id.TXT1);

inside onCreate and after setContentView . You need a valid Context and something to look for before being able to actually find something

My problem is that the app won't start and it shows force close error.

you can't use findViewById before the Activity goes for its lifecycle.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM