简体   繁体   English

如何将数组从java android活动类传递给普通的java类?

[英]How do I pass arrays from a java android activity class to a normal java class?

I'm new to java and am having issues with passing an array between classes. 我是java的新手,在类之间传递数组时遇到问题。 I want to pass data collected from the main activity for another class that is doing calculations. 我想将从主活动收集的数据传递给另一个正在进行计算的类。 When I try to print the array values to the debug log in my calculations class I get an error "java.lang.NullPointerException: Attempt to read from null array" 当我尝试将数组值打印到我的计算类中的调试日志时,我收到错误“java.lang.NullPointerException:尝试从空数组中读取”

Here is my calculations class: 这是我的计算课:

package com.example.pokerholdemcalculator;

import android.util.Log;

public class CardHandling {
private int[] usedCards;
private MainActivity ma;

CardHandling() {
    usedCards = new int[13];
    ma = new MainActivity();
    usedCards = ma.getPlayerCardContents();
}

public void printC () {
    for (int i = 0; i < 13; i++) {
        String card = Integer.toString(usedCards[i]);
        Log.d("CARDS", card);
    }
}
}

And my MainActivity class: 我的MainActivity类:

package com.example.pokerholdemcalculator;

import android.graphics.PorterDuff;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageButton;
import android.widget.ViewFlipper;

public class MainActivity extends AppCompatActivity {
private ViewFlipper viewFlipper;
private boolean[] playerCardFlag;
private ImageButton[] playerCard;
private int[] playerCardContents;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    playerCard = new ImageButton[13];
    playerCardFlag = new boolean[13];
    playerCardContents = new int[13];       
}

public void testing (View v) {
    printArr();
}

public void printArr() {
    CardHandling ch = new CardHandling();
    ch.printC();
}

public int[] getPlayerCardContents() {
    return playerCardContents;
}

This is the error message from the console: 这是来自控制台的错误消息:

Caused by: java.lang.NullPointerException: Attempt to read from null array
    at com.example.pokerholdemcalculator.MainActivity.getPlayerCardContents(MainActivity.java:70)
    at com.example.pokerholdemcalculator.CardHandling.<init>(CardHandling.java:12)
    at com.example.pokerholdemcalculator.MainActivity.printArr(MainActivity.java:64)
    at com.example.pokerholdemcalculator.MainActivity.testing(MainActivity.java:60)

I have tried initializing in different ways but can't resolve the error. 我尝试过以不同方式初始化但无法解决错误。

The main problem here is that your activity cannot be referenced like this: 这里的主要问题是您的活动不能像这样被引用:

ma = new MainActivity();
usedCards = ma.getPlayerCardContents();

Want you can do is start the Class on the Main Activity 想要做的就是在主要活动上启动课程

CardHandling ch = new CardHandling();
ch.usedCard = getPlayerCardContents();

MainActivity extends AppCompatActivity that means that your activity is not an ordinary object MainActivity扩展了AppCompatActivity,这意味着您的活动不是普通对象

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何将值从活动类传递给android中的java类? - how to pass a value from an activity class to a java class in android? 如何从普通Java类重定向到其他Java类,从而扩展android中的活动? - how to redirect from Normal java class to other java class which extends activity in android? 如何将字符串从Java服务器类传递到Android Activity? - How to pass a String from a Java server class to an Android Activity? 如何将 android 活动中的数据传递给 Java class? - How to pass data from one android activity to an Java class? 如何将数据从活动传递到Java类 - How to pass data from an activity to a java class 如何在运行活动中从正常的 Java class 打印出一些东西? - How to print something out from a normal Java class in a running activity? 如何从Android Activity调用Java类 - How to call a Java class from a Android Activity 在从普通java类调用时,如何获取活动,运行和返回Location对象 - How can I get activity, running and returning Location object, while being called from normal java class 如何从 Java 类获取结果以显示在 Android 活动中? - How do I get the result from a Java class to display in an Android activity? 将Java类中的iBeacon专业ID传递给Android Studio中的活动 - Pass an iBeacon Major ID from Java Class to activity in Android Studio
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM