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.