Java – How do I pass multiple variables from a java activity to a java class?

How do I pass multiple variables from a java activity to a java class?… here is a solution to the problem.

How do I pass multiple variables from a java activity to a java class?

I can pass a

string from Java Activity to a class library, but I can’t figure out how to send several, I need to pass three, here is the code:

OFActivity.java

package cc.openframeworks.androidMultiOFActivitiesExample;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.RelativeLayout.LayoutParams;
import cc.openframeworks.OFAndroid;
import cc.openframeworks.androidMultiOFActivitiesExample.R.id;

public class OFActivityA extends cc.openframeworks.OFActivity{

@Override
    public void onCreate(Bundle savedInstanceState)
    { 
        super.onCreate(savedInstanceState);

}

OFAndroid of = new OFAndroid("jala");

}

Android.java

public class OFAndroid {

private static String text ;

public OFAndroid(String text) {
      this.text = text ;
   }

public void useText() {
      Log.e("TAG" , this.text);
   }

Solution

Try using a) Array, b) List, or c) Bundle

Array

OFActivity.java

public class OFActivityA extends cc.openframeworks.OFActivity{

 onCreate()

OFAndroid of = new OFAndroid(new String[]{"jala", "foo", "bar"});
}

Android.java

public class OFAndroid {
   private String[] textArray ;

public OFAndroid(String[] textArray) {
      this.textArray= textArray;
   }

public void useText() {
      for (String text : textArray) {
          Log.e("TAG" , text);
      }
   }

List

OFActivity.java

public class OFActivityA extends cc.openframeworks.OFActivity{

 onCreate()

List<String> listOfString = new ArrayList<>();
    listOfString.add("jala");
    listOfString.add("foo");
    listOfString.add("bar");
    OFAndroid of = new OFAndroid(listOfString);
}

Android.java

public class OFAndroid {
   private List<String> listOfString;

public OFAndroid(List<String> listOfString) {
      this.listOfString = listOfString;
   }

public void useText() {
      for (String text : listOfString) {
          Log.e("TAG" , text);
      }
   }

bundle

OFActivity.java

public class OFActivityA extends cc.openframeworks.OFActivity{

 onCreate()

Bundle bundle = new Bundle();
    bundle.putString("keyOfString1", "jala");
    bundle.putString("keyOfString2", "foo");
    bundle.putString("keyOfString3", "bar");    
    OFAndroid of = new OFAndroid(bundle);
}

Android.java

public class OFAndroid {
   private Bundle bundle ;

public OFAndroid(Bundle bundle) {
      this.bundle = bundle;
   }

public void useText() {
      Log.e("TAG", bundle.getString("keyOfString1"));  jala
      Log.e("TAG", bundle.getString("keyOfString2"));  foo
      Log.e("TAG", bundle.getString("keyOfString3"));  bar
   }

By the way, is there any reason to use static variables in the OFAndroid .java?
If you don’t carefully control the lifecycle and references of static objects, it’s easy to cause memory leaks.

Related Problems and Solutions