+-
android – 从活动中调用另一个活动中的方法
我知道我们无法从另一个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 – 从活动中调用另一个活动中的方法 - 乐贴网