gpt4 book ai didi

android - 在android中通过它的 "tag"找到一个按钮

转载 作者:行者123 更新时间:2023-11-29 15:39:24 25 4
gpt4 key购买 nike

我正在制作一个 Android 应用程序,最初用户会获得“GO”按钮。单击该按钮时,会出现一个新的相对布局,其中有几个选项按钮,即“加法”和“减法”。然后我尝试获取用户点击了哪个按钮,并相应地提出那组问题。但是,一旦单击 GO 按钮,应用程序就会崩溃。我检查点击了哪个按钮的代码是 ---

public void start(View view)
{
startbutton.setVisibility(View.INVISIBLE);
Log.i("YO:", "Start button ok!");
optionRelativeLayout.setVisibility(RelativeLayout.VISIBLE);
int tag = (Integer) view.getTag();
if(tag==4)
additionrelativelayout.setVisibility(RelativeLayout.VISIBLE);
if(tag==5)
subtractionrelativelayout.setVisibility(RelativeLayout.VISIBLE);
}

XML代码是

<Button
android:text="Go!"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:id="@+id/start_button"
android:textSize="80sp"
android:paddingBottom="50dp"
android:paddingEnd="50dp"
android:paddingLeft="50dp"
android:paddingRight="50dp"
android:paddingStart="50dp"
android:paddingTop="50dp"
android:background="@android:color/holo_green_light"
android:onClick="start"
android:visibility="visible" />

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/optionrelativlayout"
android:visibility="visible">

<Button
android:text="Addition"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:tag="4 "
android:layout_centerHorizontal="true"
android:layout_marginTop="45dp"
android:id="@+id/addition" />

<Button
android:text="Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:tag="5"
android:layout_centerHorizontal="true"
android:id="@+id/subtraction"
android:layout_marginTop="150dp" />

</RelativeLayout>

错误是

04-24 22:21:39.525 10853-10853/com.example.rohit_136.brain_trainer I/YO:: Start button ok!
04-24 22:21:39.527 10853-10853/com.example.rohit_136.brain_trainer E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.rohit_136.brain_trainer, PID: 10853
java.lang.IllegalStateException: Could not execute method for android:onClick
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293)
at android.view.View.performClick(View.java:5226)
at android.view.View$PerformClick.run(View.java:21350)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5582)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Method.invoke(Native Method)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
at android.view.View.performClick(View.java:5226) 
at android.view.View$PerformClick.run(View.java:21350) 
at android.os.Handler.handleCallback(Handler.java:739) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5582) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.Integer.intValue()' on a null object reference
at com.example.rohit_136.brain_trainer.MainActivity.start(MainActivity.java:177)
at java.lang.reflect.Method.invoke(Native Method) 
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 
at android.view.View.performClick(View.java:5226) 
at android.view.View$PerformClick.run(View.java:21350) 
at android.os.Handler.handleCallback(Handler.java:739) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5582) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
04-24 22:21:39.535 10853-10865/com.example.rohit_136.brain_trainer I/ActivityThreadEui: schedulePauseActivity com.example.rohit_136.brain_trainer.MainActivity finished=true userLeaving=false configChanges=0 dontReport=false
04-24 22:21:41.098 10853-10853/com.example.rohit_136.brain_trainer I/Process: Sending signal. PID: 10853 SIG: 9

最佳答案

为什么不使用这些按钮已有的 ID?

public void start(View view)
{
startbutton.setVisibility(View.INVISIBLE);
Log.i("YO:", "Start button ok!");
optionRelativeLayout.setVisibility(RelativeLayout.VISIBLE);
int id = view.getId();
if(id==R.id.addition)
additionrelativelayout.setVisibility(RelativeLayout.VISIBLE);
if(id==R.id.subtraction)
subtractionrelativelayout.setVisibility(RelativeLayout.VISIBLE);
}

关于android - 在android中通过它的 "tag"找到一个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43593874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com