android– 从活动中调用另一个活动中的方法

android– 从活动中调用另一个活动中的方法,第1张

概述我知道我们无法从另一个Activity中的Activity调用方法.我正试图找出解决这个问题的最佳方法.这是我的代码.这是我试图调用的方法.这是我的ScoreCard活动.publicvoidnumPlayerSetup(){{int[]ids={R.id.TextView11,R.id.TextView12,R.id.TextView13};

我知道我们无法从另一个Activity中的Activity调用方法.我正试图找出解决这个问题的最佳方法.

这是我的代码.这是我试图调用的方法.这是我的scoreCard活动.

public voID numPlayerSetup(){{    int[] IDs = {        R.ID.TextVIEw11, R.ID.TextVIEw12, R.ID.TextVIEw13    };    for(int i : IDs) {        TextVIEw tv = (TextVIEw)findVIEwByID(i);        tv.setVisibility(VIEw.INVISIBLE);    }}

这是我试图调用该方法的方法.得分是scoreCard类的一个对象.

public voID onItemSelected(AdapterVIEw<?> arg0, VIEw arg1, int arg2, long arg3){    int item = spinner.getSelectedItemposition();    if(item==1){        Log.i("error","This Sucks");        score.numPlayerSetup();    }}

我试图将numPlayerSetup方法放在一个不会扩展Activity的不同类中,只包含逻辑,但是我不能在不扩展活动的情况下使用findVIEwByID()方法.

这就是我的称呼方式.

public voID onItemSelected(AdapterVIEw<?> arg0, VIEw arg1, int arg2, long arg3){    int item = spinner.getSelectedItemposition();    ArrayList<TextVIEw> myTextVIEwList = new ArrayList<TextVIEw>();    TextVIEw tv1 = (TextVIEw)findVIEwByID(R.ID.TextVIEw14);    myTextVIEwList.add(tv1);    if(item==1){        Log.i("error","This Sucks");        Setup.numPlayerSetup(myTextVIEwList);    }

那就是我打电话的课程.

public class Setup {    TextVIEw tv;    public static voID numPlayerSetup(ArrayList<TextVIEw> tvs){        for(TextVIEw tv : tvs) {            Log.i("crash","This Sucks");            tv.setVisibility(VIEw.INVISIBLE);  //this line is highlighted in the deBUGger as the line my error is coming from        }        }}

它将消息记录在logcat中并给我一个空指针异常.调试器说tv的值为null.这是为什么我得到一个空指针异常?

解决方法:

您可以创建一个Utitlity类(而不是Activity)并传入您想要更改的TextvIEws.并在需要时调用该方法.

public class Setup {public static voID numPlayerSetup(ArrayList<TextVIEw> tvs){                 for(TextVIEw tv : tvs) {                            tv.setVisibility(VIEw.INVISIBLE);                        }                 }}

然后你可以像(在Activity中)一样使用它:

ArrayList<TextVIEw> myTextVIEwList = new ArrayList<TextVIEw>();TextVIEw tv1 = (TextVIEw)findVIEwByID(R.ID.tv1);myTextVIEwList.add(tv1);    Setup.numPlayerSetup(myTextVIEwList);
总结

以上是内存溢出为你收集整理的android – 从活动中调用另一个活动中的方法全部内容,希望文章能够帮你解决android – 从活动中调用另一个活动中的方法所遇到的程序开发问题。

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

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

原文地址: http://outofmemory.cn/web/1109407.html

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

发表评论

登录后才能评论

评论列表(0条)

保存