英文:
The problem with android studio jave code com.example.myapplication.mainActivity.onCreate
问题
It seems like you're encountering an issue with your Android app, and you've provided code and error messages. However, you haven't specified the exact problem you're facing or what you'd like assistance with. If you have a specific question or need help with a particular aspect of your code or the error message you're receiving, please let me know, and I'll do my best to assist you.
英文:
The problem on i run app it come
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.myapplication, PID: 13080
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.myapplication/com.example.myapplication.mainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.RadioGroup.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.RadioGroup.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at com.example.myapplication.mainActivity.onCreate(mainActivity.java:31)
at android.app.Activity.performCreate(Activity.java:5990)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
at android.app.ActivityThread.access$800(ActivityThread.java:151) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5254) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
my java code is
package com.example.myapplication;
import android.annotation.SuppressLint;
import android.content.DialogInterface;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
@SuppressLint("SuspiciousIndentation")
public class mainActivity extends AppCompatActivity {
Button create, login, enter, clear;
RadioGroup gender;
RadioButton Male, Female;
private String msg;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
gender = (RadioGroup) findViewById(R.id.gender);
Male = (RadioButton) findViewById(R.id.Male);
Female = (RadioButton) findViewById(R.id.Female);
create = (Button) findViewById(R.id.Create);
login = (Button) findViewById(R.id.Login);
create = findViewById(R.id.Create);
login = findViewById(R.id.Login);
gender.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Get the selected RadioButton
int checkId = gender.getCheckedRadioButtonId();
// compare selected's Id with individual RadioButtons ID
if (checkId == -1) {
Message.message(getApplicationContext(), msg + "It's done");
} else {
findRaqdioButton(checkId);
}
}
});
clear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
gender.clearCheck();
}
});
gender.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {
gender = findViewById(checkedId);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
Message.message(getApplicationContext(), gender.getTooltipText().toString());
}
}
});
}
private void findRaqdioButton(int checkId) {
switch (checkId) {
case R.id.Male:
Message.message(getApplicationContext(), msg + "Male");
break;
case R.id.Female:
Message.message(getApplicationContext(), msg + "Female");
break;
}
}
}
this xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/b1"
tools:context=".mainActivity"
tools:ignore="ExtraText">
<TextView
android:id="@+id/title_textview"
android:text="Create your new account"
android:textSize="30sp"
android:textColor="#FFFFFF"
android:layout_marginTop="20dp"
android:layout_marginBottom="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:id="@+id/smile_imageview"
android:src="@mipmap/icons"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:layout_height="wrap_content"
android:id="@+id/firstname"
android:layout_width="match_parent"
android:text="Frist name"
android:textSize="20sp"
android:textStyle="bold"
android:textColor="#FFFFFF" />
<EditText
android:id="@+id/Name_edit"
android:hint="@string/first_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:background="#FAF8F8" />
<TextView
android:layout_height="wrap_content"
android:id="@+id/lastname"
android:layout_width="match_parent"
android:text="Last name"
android:textSize="20sp"
android:textStyle="bold"
android:textColor="#FFFFFF" />
<EditText
android:id="@+id/lastname_edit"
android:hint="Last name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:background="#FAF8F8" />
<TextView
android:layout_height="wrap_content"
android:id="@+id/Email"
android:layout_width="match_parent"
android:text="Email"
android:textSize="20sp"
android:textStyle="bold"
android:textColor="#FFFFFF" />
<EditText
android:id="@+id/Email_edit"
android:hint="Enter your Email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
android:background="#FAF8F8" />
<TextView
android:layout_height="wrap_content"
android:id="@+id/Passwoed"
android:layout_width="match_parent"
android:text="Password"
android:textSize="20sp"
android:textStyle="bold"
android:textColor="#FFFFFF" />
<EditText
android:id="@+id/Password_edit"
android:hint="Enter your Password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:background="#FAF8F8" />
<RadioGroup
android:id="@+id/gender"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<RadioButton
android:id="@+id/Male"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/male"
android:textColor="#FFFFFF"/>
<RadioButton
android:id="@+id/Female"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="@string/female"
android:textColor="#FFFFFF"/>
</RadioGroup>
<TableLayout
android:id="@+id/table1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:stretchColumns="*">
<TableRow>
<Button
android:id="@+id/enter"
android:text="choose"
android:layout_marginTop="20dp"
android:layout_marginBottom="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/clear"
android:text="@string/clear"
android:layout_marginTop="20dp"
android:layout_marginBottom="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</TableRow>
</TableLayout>
<CheckBox
android:id="@+id/ch1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="I agree with Terms of Service"
android:textStyle="bold"
android:textColor="#FFFFFF" >
</CheckBox>
<CheckBox
android:id="@+id/ch2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=
"@string/i_understand_that_if_i_loss_my_password_i_may_lose_my_data_read_more_information_on_help"
android:textStyle="bold"
android:textColor="#FFFFFF">
</CheckBox>
<TableLayout
android:id="@+id/t1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:stretchColumns="*">
<TableRow>
<Button
android:id="@+id/Create"
android:text="Create account"
android:layout_marginTop="20dp"
android:layout_marginBottom="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/Login"
android:text="Log in"
android:layout_marginTop="20dp"
android:layout_marginBottom="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</TableRow>
<TableRow>
<TextView
android:text="Help"
android:id="@+id/help"
android:textColor="#FFFFFF"
android:padding="5dp"/>
<TextView
android:text="How you can use it"
android:id="@+id/how"
android:textColor="#FFFFFF"
android:padding="5dp"/>
</TableRow>
</TableLayout>
</LinearLayout>
My app always stopped i can't run
答案1
得分: 1
您正在尝试访问未初始化的gender
RadioGroup
,并且代码中存在其他问题,变量clear
和enter
未初始化。在gender.setOnCheckedChangeListener()
方法中,您尝试查找一个RadioButton,并且在尝试初始化任何视图之前,您需要调用setContentView()
。您的代码应该如下所示:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.your_layout_file_name);
gender = findViewById(R.id.gender);
Male = findViewById(R.id.Male);
Female = findViewById(R.id.Female);
create = findViewById(R.id.Create);
login = findViewById(R.id.Login);
clear = findViewById(R.id.clear);
enter = findViewById(R.id.enter);
gender.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {
RadioButton radioButton = findViewById(checkedId);
//....
}
});
clear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
gender.clearCheck();
}
});
enter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//获取选中的RadioButton
//....
}
});
//....
}
英文:
You are trying to access the gender
RadioGroup
without initializing it first and there are some other issues in your code, variables clear
and enter
are not initialized, in the gender.setOnCheckedChangeListener()
method, you are trying to find a RadioButton and you need to setContentView()
before trying to initialize any of the views. Your code should be something like this:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.your_layout_file_name);
gender = findViewById(R.id.gender);
Male = findViewById(R.id.Male);
Female = findViewById(R.id.Female);
create = findViewById(R.id.Create);
login = findViewById(R.id.Login);
clear = findViewById(R.id.clear);
enter = findViewById(R.id.enter);
gender.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {
RadioButton radioButton = findViewById(checkedId);
//....
}
});
clear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
gender.clearCheck();
}
});
enter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Get the selected RadioButton
//....
}
});
//....
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论