Reputation: 11
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
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
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
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
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