如何在一个活动中使用Java类?

如何在一个活动中使用Java类?,第1张

概述您如何在一个活动中使用Java类,我的意思是将该活动的不同组件散布在一堆Java类中.我是android的新手,这是到目前为止我尝试过的工作:MainActivity.javapackagecom.example.alex.myapplication;importandroid.support.v7.app.ActionBarActivity;importandroid.os.Bundle

您如何在一个活动中使用Java类,我的意思是将该活动的不同组件散布在一堆java类中.我是androID的新手,这是到目前为止我尝试过的工作:

MainActivity.java

package com.example.alex.myapplication; import androID.support.v7.app.ActionBaractivity; import androID.os.Bundle; import androID.vIEw.Menu; import androID.vIEw.MenuItem; public class MainActivity extends ActionBaractivity {@OverrIDeprotected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.activity_main);     new Something(this);}@OverrIDepublic boolean onCreateOptionsMenu(Menu menu) {    // Inflate the menu; this adds items to the action bar if it is present.    getMenuInflater().inflate(R.menu.menu_main, menu);    return true;}@OverrIDepublic boolean onoptionsItemSelected(MenuItem item) {    // Handle action bar item clicks here. The action bar will    // automatically handle clicks on the Home/Up button, so long    // as you specify a parent activity in AndroIDManifest.xml.    int ID = item.getItemID();    //noinspection SimplifiableIfStatement    if (ID == R.ID.action_settings) {        return true;    }    return super.onoptionsItemSelected(item);}  }

Something.java

import androID.vIEw.VIEw;import androID.Widget.EditText;import androID.Widget.button;import androID.app.Activity;    public class Something  {  private Activity activity;  private button add,subtract,multiply,devIDe;  private EditText editA, editB, editC;  private double doubleA,doubleB,doubleC;      public Something(Activity a){              activity=a;              click();       }       public voID click(){           editA = (EditText) activity.findVIEwByID(R.ID.editText);           editB = (EditText) activity.findVIEwByID(R.ID.editText2);           editC = (EditText) activity.findVIEwByID(R.ID.editText3);          doubleA =Double.parseDouble(editA.getText().toString());          doubleB =Double.parseDouble(editB.getText().toString());              add = (button) activity.findVIEwByID(R.ID.add);              subtract = (button) activity.findVIEwByID(R.ID.subtract);              multiply = (button) activity.findVIEwByID(R.ID.multiply);              devIDe = (button) activity.findVIEwByID(R.ID.devIDe);               add.setonClickListener(new VIEw.OnClickListener() {                   @OverrIDe                   public voID onClick(VIEw v) {                     doubleC = doubleA+doubleB;                     String s = "" + doubleC;                      editC.setText(s);                   }               });               subtract.setonClickListener(new VIEw.OnClickListener() {               @OverrIDe               public voID onClick(VIEw v) {                   doubleC = doubleA-doubleB;                   String s = "" + doubleC;                   editC.setText(s);               }           });               multiply.setonClickListener(new VIEw.OnClickListener() {               @OverrIDe               public voID onClick(VIEw v) {                   doubleC = doubleA*doubleB;                   String s = "" + doubleC;                   editC.setText(s);               }           });           devIDe.setonClickListener(new VIEw.OnClickListener() {               @OverrIDe               public voID onClick(VIEw v) {                   doubleC = doubleA/doubleB;                   String s = "" + doubleC;                   editC.setText(s);               }           });       }       }

所以我不确定为什么我的听众不能在按钮上工作,所以我尝试将活动传递给已将听众添加到按钮上的类,但实际上不起作用,现在我的应用程序甚至无法启动模拟器.我要做的就是让“ MainActivity”处理“ Gui”,让“ Something”类处理侦听器,但是不管我做什么,我似乎都无法使他们相互交流以形成一个Activity.

logcat的

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'androID.vIEw.VIEw androID.vIEw.Window.findVIEwByID(int)' on a null object reference        at androID.app.Activity.findVIEwByID(Activity.java:2071)        at com.example.alex.myapplication.something.click(Something.java:32)        at com.example.alex.myapplication.MainActivity.onCreate(MainActivity.java:19)        at androID.app.Activity.performCreate(Activity.java:5937)        at androID.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)        at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:2251)        at androID.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)        at androID.app.ActivityThread.access0(ActivityThread.java:144)        at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)        at androID.os.Handler.dispatchMessage(Handler.java:102)        at androID.os.Looper.loop(Looper.java:135)        at androID.app.ActivityThread.main(ActivityThread.java:5221)        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:899)        at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:694)

解决方法:

像带有1个java类的post XD之前一样,在按下按钮之后再次调用它,例如,您可以具有一个不可见的按钮,单选按钮,无论您想使其不可见,只要单击一下,它就会对您变得可见并且对您有用,在这里我去:

首先,控制活动的变量将要做

String num ="";

然后有你的按钮,我用其中的两个,其他的都不可见

button bn1;button bn2;button bn3;button bn4;bn3.setVisibility(VIEw.INVISIBLE);bn4.setVisibility(VIEw.INVISIBLE);

然后按钮代码,取决于您想要多少个按钮

button.setonClickListener(new button onclickListener(){        public voID onClick(){            //get a default variable in this case String num    Intent intent = new Intent(MainActivity.this, MainActivity.class); num="cero"; intent.putExtra("po", num);                        CodigoPeticion=2; startActivityForResult (intent,CodigoPeticion); finish(); break;                }            }        });

这个得到String num:

Bundle extras = getIntent().getExtras();        if (extras!= null) {            num =extras.getString("po");        }

最后但并非最不重要的一点是,此 *** 作取决于String:

    if (num.matches("cero")){                //do something, enable more buttons, disable radiobuttons,bn3.setVisibility(VIEw.VISIBLE);            }else if(num.matches("one")){//this string is from another button                //do something else in the same activity, as you spected enable radiobuttons, show a image, etcbn4.setVisibility(VIEw.VISIBLE);            }else{                //some textvIEw with a specific Title                TextVIEw.setText("Something's Wrong");            }

不要忘记bn3和bn4监听器!

希望对您有所帮助,再见!

总结

以上是内存溢出为你收集整理的如何在一个活动中使用Java类?全部内容,希望文章能够帮你解决如何在一个活动中使用Java类?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1094027.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存