NKN
NKN

Reputation: 11

How to pass data from one class to another class?

Here i am using two classes dulux ,jsonfiles classes. I tried to pass data to jsonfiles to dulux using object but it passing null value this is my code:

jasonfiles.class.package com.cethar.grid;
import java.io.InputStream;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Vector;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.R.string;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
public class Jsonfiles extends Activity {
TextView tvdata,tvdata1,tvdata2,tvdata3,tvdata4,tvdata5;
public static JSONObject jObject;
String  arr_name,arr_row,arr_column,arr_rows,string_filter,string_arrange,string_color,string_produ    ct,string_groups,string_video,string_schemes;
int c1,c2,c3;
int file_filter,file_arrangement,file_color;
String v3,v4,v5,v6,v7,v8;
Vector  v =new Vector();
public HashMap color_id = new HashMap();
HashMap arrange_id = new HashMap();
HashMap filter_main = new HashMap();
HashMap arrange_name = new HashMap();
HashMap product_name = new HashMap();
HashMap group_name = new HashMap();
HashMap video_id = new HashMap();
@Override
public  void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.json);    
arrangementFile();
filterFile();
colorFile();
string element = Product();    
}
public   String parseFile(int file)
{
try{
String x = "";
InputStream is = this.getResources().openRawResource(file);
byte[] buffer = new byte[is.available()];
while (is.read(buffer) != -1);
String jsontext = new String(buffer);
return(jsontext);
} catch (Exception e) {
String Ex=" ";
return(Ex);
}
} 
public void  colorFile() { 
try {
string_color=parseFile(R.raw.colours);
String z = "";
JSONArray JSONArray_color = new JSONArray(string_color);
z = "JSON parsed.\nThere are [" + JSONArray_color.length() + "]\n\n";
int i;
for (i = 0; i < JSONArray_color.length(); i++) {
JSONObject JSONObject_color = JSONArray_color.getJSONObject(i);
HashMap color_elements = new HashMap();
color_elements.put("name",JSONObject_color.getString("name"));
color_elements.put("code",JSONObject_color.getString("code"));
color_elements.put("red",JSONObject_color.getString("red"));
color_elements.put("green",JSONObject_color.getString("green"));
color_elements.put("blue",JSONObject_color.getString("blue"));
color_elements.put("availability",JSONObject_color.getString("availability"));
HashMap color_details = new HashMap();
color_details.put("detail",color_elements);
color_id.put(JSONObject_color.getString("id"), color_elements);    
e.printStackTrace();
}
}
public void arrangementFile() {
try {
string_arrange=parseFile(R.raw.arrangement);
JSONArray JSONArray_arrange = new JSONArray(string_arrange);
String y ="";
int i;
for (i = 0; i < JSONArray_arrange.length(); i++) {
JSONObject JSONObject_arrange = JSONArray_arrange.getJSONObject(i);
HashMap arrange_elements = new HashMap();
Vector arow = new Vector();
Vector acolumn = new Vector();
arow.add(JSONObject_arrange.getString("row"));
acolumn.add(JSONObject_arrange.getString("column"));
String arowsstr;
arowsstr = JSONObject_arrange.getString("rows");
arowsstr = arowsstr.substring(1, arowsstr.length()-1);
String[] astrrows = arowsstr.split(",");
Vector arows = new Vector(Arrays.asList(astrrows));
arrange_elements.put("row", arow);
arrange_elements.put("column", acolumn);
arrange_elements.put("rows", arows);
arrange_name.put(JSONObject_arrange.getString("name"), arrange_elements);
HashMap HashMap_clr = new HashMap();
String clr = JSONObject_arrange.getString("column");
}
Vector  v =new Vector();
v= (Vector)((HashMap) arrange_name.get("RR01")).get("rows"); 
y += v.get(0) + " " + v.get(1)+ " " +v.get(2) + " " +v.get(3);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void filterFile() {
try {
string_filter=parseFile(R.raw.filters);
JSONArray JSONArray_filter  = new JSONArray(string_filter);
int i;
String x ="";
for (i = 0; i < JSONArray_filter.length(); i++) {
JSONObject JSONObject_filter  = JSONArray_filter.getJSONObject(i);
HashMap product_elements = new HashMap();
String filter_name = JSONObject_filter.getString("name");
String str_stripes;
str_stripes = JSONObject_filter.getString("stripes");
str_stripes = str_stripes.substring(1, str_stripes.length()-1);
str_stripes = str_stripes.replace("\"", "");
String[] strarr_stripes = str_stripes.split(",");
HashMap HashMap_stripes = new HashMap();
List<String> stripesList = Arrays.asList(strarr_stripes);
for(String fls : stripesList)
{
HashMap_stripes.put(fls, arrange_name.get(fls));
}
filter_main.put(JSONObject_filter.getString("name"),HashMap_stripes);
}
String s1 = " ";
String s2 = " ";
Vector v1 = ((Vector) ((HashMap) ((HashMap)filter_main.get("reds")).get("RR02")).get("row"));
Vector v2 = (Vector) ((HashMap)((HashMap)filter_main.get("reds")).get("RR02")).get("column");
v= (Vector)((HashMap) ((HashMap) filter_main.get("reds")).get("RR01")).get("rows");
x += v.get(0) + " " + v.get(1)+ " " +v.get(2) + " " +v.get(3)+ " " +v.get(4)+ " " +v.get(5) + " " +v.get(6);
s1 +=  v1.get(0) + " " ;
s2 += v2.get(0) + " " ;
v6=(String) v.get(0).toString();   
v3= (String) ((HashMap) color_id.get("168")).get("red");
v4 =(String) (((HashMap) color_id.get("168")).get("green"));
v5 =(String) (((HashMap) color_id.get("168")).get("blue"));
c1= Integer.parseInt(v3);
c2= Integer.parseInt(v4);
c3= Integer.parseInt(v5);
for(i=0;i<=6;i++)
{
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public string Product() {
string v=null;
try {
string_product=parseFile(R.raw.product_list);
JSONArray JSONArray_product = new JSONArray(string_product);
String y ="";
for (int i = 0; i < JSONArray_product.length(); i++) {
JSONObject JSONObject_product = JSONArray_product.getJSONObject(i);
HashMap product_elements = new HashMap();
product_elements.put("CLEANING_UP",JSONObject_product.getString("CLEANING_UP"));
product_elements.put("NUMBER_COATS",JSONObject_product.getString("NUMBER_COATS"));
product_elements.put("PACK_SIZES",JSONObject_product.getString("PACK_SIZES"));     product_elements.put("SHORTDESCRIPTION",JSONObject_product.getString("SHORTDESCRIPTION"));
product_elements.put("NAME",JSONObject_product.getString("NAME"));
product_elements.put("DRYING_TIME",JSONObject_product.getString("DRYING_TIME"));
product_elements.put("SUBSTRATE",JSONObject_product.getString("SUBSTRATE"));
product_elements.put("LARGEIMAGEURL",JSONObject_product.getString("LARGEIMAGEURL"));
product_elements.put("APPLICATION_METHOD",JSONObject_product.getString("APPLICATION_METHOD"    ));
product_elements.put("SMALLIMAGE",JSONObject_product.getString("SMALLIMAGE"));
product_elements.put("RANGE",JSONObject_product.getString("RANGE"));
product_elements.put("BRAND",JSONObject_product.getString("BRAND"));
product_elements.put("SEQ",JSONObject_product.getString("SEQ"));    
product_elements.put("COVERAGE",JSONObject_product.getString("COVERAGE"));
product_elements.put("FINISH",JSONObject_product.getString("FINISH"));
product_name.put(JSONObject_product.getString("SHORTCODE"),product_elements);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return (v);
}
public void groupsFile() {
try {
string_groups=parseFile(R.raw.availability_groups);
JSONArray JSONArray_groups= new JSONArray(string_groups);
String y ="";
int i;
for (i = 0; i < JSONArray_groups.length(); i++) {
JSONObject JSONObject_groups = JSONArray_groups.getJSONObject(i);
HashMap group_elements = new HashMap();
group_elements.put("groups",JSONObject_groups.getString("groups"));  
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void string_Video() {
string v=null;
try {
string_video=parseFile(R.raw.video_list);
JSONArray JSONArray_video = new JSONArray(string_video);
for (int i = 0; i < JSONArray_video.length(); i++) {
JSONObject JSONObject_video = JSONArray_video.getJSONObject(i);
HashMap video_elements = new HashMap();
video_elements.put("name",JSONObject_video.getString("name"));
video_elements.put("thumbnailURL",JSONObject_video.getString("thumbnailURL"));
video_elements.put("URL",JSONObject_video.getString("URL"));
video_elements.put("desc",JSONObject_video.getString("desc"));
video_elements.put("previewURL",JSONObject_video.getString("previewURL"));
video_id.put(JSONObject_video.getString("video_id"),video_elements);
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}   

This is my activity class dulux.class

import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
import android.widget.TableRow.LayoutParams;
public class DuluxColorGridAActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Jsonfiles js=new Jsonfiles();
System.out.println(""+js.c1);
System.out.println(""+js.c2);
System.out.println(""+js.c3);
LinearLayout ll = (LinearLayout) findViewById(R.id.list_parent);
TableLayout layout = new TableLayout (this);
layout.setLayoutParams( new TableLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.FILL_PARENT) );
layout.setPadding(8,8,8,8);
TableLayout.LayoutParams rowLp = new TableLayout.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.FILL_PARENT,
1.0f);
rowLp.setMargins(6, 0, 0,0);
TableRow.LayoutParams cellLp = new TableRow.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.FILL_PARENT,
1.0f);
cellLp.setMargins(6,0, 0, 0);
for (int f=0; f<=6; f++) {
js.filterFile();
TableRow tr = new TableRow(this);
tr.setBackgroundColor(Color.BLACK);
tr.setPadding(0,0, 0,2 );
TableRow.LayoutParams llp = new
TableRow.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);
llp.setMargins(0, 0, 2, 0);//2px right-margin
//New Cell
for (int c1=0; c1<=3; c1++) {
LinearLayout cell = new LinearLayout(this);
if(c1==0)
cell.setBackgroundColor(Color.rgb(js.c1, js.c2, js.c3));
else
cell.setBackgroundColor(Color.rgb(0,243, 0));
//cell.setBackgroundColor(Color.WHITE);
cell.setLayoutParams(llp);//2px border on the right for the cell
TextView b = new TextView (this);
b.setText("Sample");
b.setTextSize(10.0f);
b.setHeight(75);
b.setWidth(107);
b.setPadding(0, 0, 4, 0);
cell.addView(b);
tr.addView(cell,cellLp);
} // for
layout.addView(tr,rowLp);
} // for
ll.addView(layout);
//      super.setContentView(layout);
}
}

This is my sample JSON file code

  {"id" : 168, "name" : "Plum Escape", "code" : "12RR 07/229", "red" : 102, "green" :    65, "blue" : 88, "availability" : "g12"}

RGB color can not retrieve from one class to another class, how can i get value one class to another

Upvotes: 1

Views: 3582

Answers (4)

abhijeet
abhijeet

Reputation: 11

use this:

In sender class

Intent intent  = new Intent(getApplicationContext(),Receiver.class);    

intent.putExtra("key_variable", your_variable_HoldingValueToBeSend); 

startActivity(intent);

In receiver class

 Intent intent = getIntent(); 
 String get_value  = intent.getStringExtra("key_variable");

now you have sent the value of sender class to your receiver class holded by the variable "get_value" & you can use this value in your receiver class."

Upvotes: 1

Sriram C G
Sriram C G

Reputation: 931

Try to get this example, its easy then

To open an activity and wait for a result, we can use this sintax

Intent newIntent = new Intent(this.getApplicationContext(), ActivityClass2.class);
startActivityForResult(newIntent, 0);

ActivityClass2 is the class name of activity that we need to create and then open it from current activity. startActivityForResult is a method to run newActivity. Later we can have the result by add this function on current Activity

protected void onActivityResult(int requestCode, int resultCode, Intent data)

First to send a data or parameter to newActivity we can use this sintax

Bundle bundle = new Bundle();
bundle.putString(“param1″, “test”);

Intent newIntent = new Intent(this.getApplicationContext(), ActivityClass2.class);
newIntent.putExtras(bundle);
startActivityForResult(newIntent, 0);

On ActivityClass2, we can read this parameter using this sintax

Bundle bundle = this.getIntent().getExtras();
String param1 = bundle.getString(“param1″);

be carefull to use param1, because it can be null if we didn’t set it.

So it is very easy to send or passing data or parameter between two activity in Android. One last thing is to return a value for startActivityForResult, we can add this line code to close ActivityClass2 and return focus to opener plus send data to opener activity.

Bundle bundle = new Bundle();
bundle.putString(“status”, “OK”);
Intent mIntent = new Intent();
mIntent.putExtras(bundle);
setResult(RESULT_OK, mIntent);
finish();

Upvotes: 2

Praveenkumar
Praveenkumar

Reputation: 24476

Use bundle for this.

Sender.java -

Intent i = new Intent(this, Receiver.class);
Bundle bundle = new Bundle();
bundle.putString("id", "100"); // "id" is a key for identifer and "100" is value
i.putExtras(bundle);
startActivity(i);

Receiver.java -

Bundle bundle = getIntent().getExtras();
int id = bundle.getString("id");
Toast.makeTest(getApplicationContext(), String.valueOf(id), Toast.LENGTH_LONG).show();

And, refer Bundle from Developer's site.

Upvotes: 1

jennifer
jennifer

Reputation: 8261

If you want to pass a value into another android activity,

Step 1 : then you can put it into an Intent, and call startActivity on the target activity.

Intent i = new Intent(this, ClassToSendTo.class); 
i.putExtra("id", id); startActivity(i); 

Refer link

Step 2 : Android; Implementing global state; share data between Activities and across your application

Step3 : use static variables in the calling activity with static setter methods to set them.

In this way we can change values in any activity at will, regardless of the exact flow of control between the various activities.

Note that this trick can only be used if you don't care about the instantiation of more than one copy of the same activity (class) in the application, this is the easiest to implement

Upvotes: 0

Related Questions