AVR programmer
جمعه 29 مرداد 1395, 16:38 عصر
یه برنامه ماشین حساب دارم مینویسم که دارای چند theme مختلف باشه . برنامه ماشین حساب رو تو یک activity و برنامه تنظیم theme را توی یک activity دیگه نوشتم . مشکل از جایی شروع میشه که من از acivity اصلی به activity مربوط به theme میرم و theme رو انتخاب میکنم . حالا وقتی میخوام برگردم باید یه شماره عددی یا یه دیتایی رو به activity ماشین حساب انتقال بدم تا رنگ ها تغییر داده بشن ولی مشکل همیجاست که چجوری باید اینکارو انجام بدم .
با دستور intent.putExtra سعی کردم ولی نمیشه یا بعضی وقتها برنامه ارور میده . لطفا کمک کنید. اینم از دوتا activity :
activity ماشین حساب :
package Change_Color1.namespace;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class Change_Color1Activity extends Activity {
EditText editText1;
Button button1;
Button button2;
Button button3;
Button button4;
Button button5;
Button button6;
Button button7;
Button button8;
Button button9;
Button button0;
Button buttonAdd;
Button buttonMinus;
Button buttonMultiply;
Button buttonDivision;
Button buttonEquals;
Button buttonClear;
Button buttonChangeTheme;
EditText editText2;
private int number1 = 0, number2 = 0, result = 0, state = 1;
int count = 0;
String msg;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
editText1 = (EditText) findViewById(R.id.editText1);
button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
button3 = (Button) findViewById(R.id.button3);
button4 = (Button) findViewById(R.id.button4);
button5 = (Button) findViewById(R.id.button5);
button6 = (Button) findViewById(R.id.button6);
button7 = (Button) findViewById(R.id.button7);
button8 = (Button) findViewById(R.id.button8);
button9 = (Button) findViewById(R.id.button9);
button0 = (Button) findViewById(R.id.button0);
buttonAdd = (Button) findViewById(R.id.buttonAdd);
buttonMinus = (Button) findViewById(R.id.buttonMinus);
buttonMultiply = (Button) findViewById(R.id.buttonMultiply);
buttonDivision = (Button) findViewById(R.id.buttonDivision);
buttonEquals = (Button) findViewById(R.id.buttonEquals);
buttonClear = (Button) findViewById(R.id.buttonClear);
buttonChangeTheme = (Button) findViewById(R.id.buttonChangeTheme);
editText2 = (EditText) findViewById(R.id.editText2);
if (count != 0)
{
msg = getIntent().getExtras().getString("Message");
editText2.setText(msg);
}
count++;
Toast.makeText(getApplicationContext(), "for test", Toast.LENGTH_LONG).show();
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (state == 1)
{
number1 = (number1 * 10) + 1;
editText1.setText(String.valueOf(number1));
}
else
{
number2 = (number2 * 10) + 1;
editText1.setText(String.valueOf(number2));
}
}
});
button2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (state == 1)
{
number1 = (number1 * 10) + 2;
editText1.setText(String.valueOf(number1));
}
else
{
number2 = (number2 * 10) + 2;
editText1.setText(String.valueOf(number2));
}
}
});
button3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (state == 1)
{
number1 = (number1 * 10) + 3;
editText1.setText(String.valueOf(number1));
}
else
{
number2 = (number2 * 10) + 3;
editText1.setText(String.valueOf(number2));
}
}
});
button4.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (state == 1)
{
number1 = (number1 * 10) + 4;
editText1.setText(String.valueOf(number1));
}
else
{
number2 = (number2 * 10) + 4;
editText1.setText(String.valueOf(number2));
}
}
});
button5.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (state == 1)
{
number1 = (number1 * 10) + 5;
editText1.setText(String.valueOf(number1));
}
else
{
number2 = (number2 * 10) + 5;
editText1.setText(String.valueOf(number2));
}
}
});
button6.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (state == 1)
{
number1 = (number1 * 10) + 6;
editText1.setText(String.valueOf(number1));
}
else
{
number2 = (number2 * 10) + 6;
editText1.setText(String.valueOf(number2));
}
}
});
button7.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (state == 1)
{
number1 = (number1 * 10) + 7;
editText1.setText(String.valueOf(number1));
}
else
{
number2 = (number2 * 10) + 7;
editText1.setText(String.valueOf(number2));
}
}
});
button8.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (state == 1)
{
number1 = (number1 * 10) + 8;
editText1.setText(String.valueOf(number1));
}
else
{
number2 = (number2 * 10) + 8;
editText1.setText(String.valueOf(number2));
}
}
});
button9.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (state == 1)
{
number1 = (number1 * 10) + 9;
editText1.setText(String.valueOf(number1));
}
else
{
number2 = (number2 * 10) + 9;
editText1.setText(String.valueOf(number2));
}
}
});
button0.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (state == 1)
{
number1 = (number1 * 10) + 0;
editText1.setText(String.valueOf(number1));
}
else
{
number2 = (number2 * 10) + 0;
editText1.setText(String.valueOf(number2));
}
}
});
buttonAdd.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
state = 2;
}
});
buttonMinus.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
state = 3;
}
});
buttonMultiply.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
state = 4;
}
});
buttonDivision.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
state = 5;
}
});
buttonEquals.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
switch (state)
{
case 1:
break;
case 2:
result = number1 + number2;
break;
case 3:
result = number1 - number2;
break;
case 4:
result = number1 * number2;
break;
case 5:
result = number1 / number2;
break;
}
editText1.setText(String.valueOf(result));
state = 1;
number1 = result;
number2 = 0;
}
});
buttonClear.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
state = 1;
number1 = 0;
number2 = 0;
result = 0;
editText1.setText(String.valueOf(0));
}
});
buttonChangeTheme.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(Change_Color1Activity.this, theme.class);
startActivity(intent);
}
});
}
}
activity مربوط به theme :
package Change_Color1.namespace;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
public class theme extends Activity {
RadioGroup radioGroup1;
Button buttonBack;
public int counter = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.theme);
radioGroup1 = (RadioGroup) findViewById(R.id.radioGroup1);
buttonBack = (Button) findViewById(R.id.buttonBack);
radioGroup1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup arg0, int selectedID) {
LinearLayout bgElement = (LinearLayout) findViewById(R.id.container);
if (selectedID == R.id.radioTheme1)
{
bgElement.setBackgroundColor(Color.BLACK);
counter = 1;
}
if (selectedID == R.id.radioTheme2)
{
bgElement.setBackgroundColor(Color.CYAN);
counter = 2;
}
if (selectedID == R.id.radioTheme3)
{
bgElement.setBackgroundColor(Color.RED);
counter = 3;
}
}
});
buttonBack.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(theme.this, Change_Color1Activity.class);
intent.putExtra("Message", "counter");
startActivity(intent);
}
});
}
}
با دستور intent.putExtra سعی کردم ولی نمیشه یا بعضی وقتها برنامه ارور میده . لطفا کمک کنید. اینم از دوتا activity :
activity ماشین حساب :
package Change_Color1.namespace;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class Change_Color1Activity extends Activity {
EditText editText1;
Button button1;
Button button2;
Button button3;
Button button4;
Button button5;
Button button6;
Button button7;
Button button8;
Button button9;
Button button0;
Button buttonAdd;
Button buttonMinus;
Button buttonMultiply;
Button buttonDivision;
Button buttonEquals;
Button buttonClear;
Button buttonChangeTheme;
EditText editText2;
private int number1 = 0, number2 = 0, result = 0, state = 1;
int count = 0;
String msg;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
editText1 = (EditText) findViewById(R.id.editText1);
button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
button3 = (Button) findViewById(R.id.button3);
button4 = (Button) findViewById(R.id.button4);
button5 = (Button) findViewById(R.id.button5);
button6 = (Button) findViewById(R.id.button6);
button7 = (Button) findViewById(R.id.button7);
button8 = (Button) findViewById(R.id.button8);
button9 = (Button) findViewById(R.id.button9);
button0 = (Button) findViewById(R.id.button0);
buttonAdd = (Button) findViewById(R.id.buttonAdd);
buttonMinus = (Button) findViewById(R.id.buttonMinus);
buttonMultiply = (Button) findViewById(R.id.buttonMultiply);
buttonDivision = (Button) findViewById(R.id.buttonDivision);
buttonEquals = (Button) findViewById(R.id.buttonEquals);
buttonClear = (Button) findViewById(R.id.buttonClear);
buttonChangeTheme = (Button) findViewById(R.id.buttonChangeTheme);
editText2 = (EditText) findViewById(R.id.editText2);
if (count != 0)
{
msg = getIntent().getExtras().getString("Message");
editText2.setText(msg);
}
count++;
Toast.makeText(getApplicationContext(), "for test", Toast.LENGTH_LONG).show();
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (state == 1)
{
number1 = (number1 * 10) + 1;
editText1.setText(String.valueOf(number1));
}
else
{
number2 = (number2 * 10) + 1;
editText1.setText(String.valueOf(number2));
}
}
});
button2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (state == 1)
{
number1 = (number1 * 10) + 2;
editText1.setText(String.valueOf(number1));
}
else
{
number2 = (number2 * 10) + 2;
editText1.setText(String.valueOf(number2));
}
}
});
button3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (state == 1)
{
number1 = (number1 * 10) + 3;
editText1.setText(String.valueOf(number1));
}
else
{
number2 = (number2 * 10) + 3;
editText1.setText(String.valueOf(number2));
}
}
});
button4.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (state == 1)
{
number1 = (number1 * 10) + 4;
editText1.setText(String.valueOf(number1));
}
else
{
number2 = (number2 * 10) + 4;
editText1.setText(String.valueOf(number2));
}
}
});
button5.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (state == 1)
{
number1 = (number1 * 10) + 5;
editText1.setText(String.valueOf(number1));
}
else
{
number2 = (number2 * 10) + 5;
editText1.setText(String.valueOf(number2));
}
}
});
button6.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (state == 1)
{
number1 = (number1 * 10) + 6;
editText1.setText(String.valueOf(number1));
}
else
{
number2 = (number2 * 10) + 6;
editText1.setText(String.valueOf(number2));
}
}
});
button7.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (state == 1)
{
number1 = (number1 * 10) + 7;
editText1.setText(String.valueOf(number1));
}
else
{
number2 = (number2 * 10) + 7;
editText1.setText(String.valueOf(number2));
}
}
});
button8.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (state == 1)
{
number1 = (number1 * 10) + 8;
editText1.setText(String.valueOf(number1));
}
else
{
number2 = (number2 * 10) + 8;
editText1.setText(String.valueOf(number2));
}
}
});
button9.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (state == 1)
{
number1 = (number1 * 10) + 9;
editText1.setText(String.valueOf(number1));
}
else
{
number2 = (number2 * 10) + 9;
editText1.setText(String.valueOf(number2));
}
}
});
button0.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (state == 1)
{
number1 = (number1 * 10) + 0;
editText1.setText(String.valueOf(number1));
}
else
{
number2 = (number2 * 10) + 0;
editText1.setText(String.valueOf(number2));
}
}
});
buttonAdd.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
state = 2;
}
});
buttonMinus.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
state = 3;
}
});
buttonMultiply.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
state = 4;
}
});
buttonDivision.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
state = 5;
}
});
buttonEquals.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
switch (state)
{
case 1:
break;
case 2:
result = number1 + number2;
break;
case 3:
result = number1 - number2;
break;
case 4:
result = number1 * number2;
break;
case 5:
result = number1 / number2;
break;
}
editText1.setText(String.valueOf(result));
state = 1;
number1 = result;
number2 = 0;
}
});
buttonClear.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
state = 1;
number1 = 0;
number2 = 0;
result = 0;
editText1.setText(String.valueOf(0));
}
});
buttonChangeTheme.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(Change_Color1Activity.this, theme.class);
startActivity(intent);
}
});
}
}
activity مربوط به theme :
package Change_Color1.namespace;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
public class theme extends Activity {
RadioGroup radioGroup1;
Button buttonBack;
public int counter = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.theme);
radioGroup1 = (RadioGroup) findViewById(R.id.radioGroup1);
buttonBack = (Button) findViewById(R.id.buttonBack);
radioGroup1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup arg0, int selectedID) {
LinearLayout bgElement = (LinearLayout) findViewById(R.id.container);
if (selectedID == R.id.radioTheme1)
{
bgElement.setBackgroundColor(Color.BLACK);
counter = 1;
}
if (selectedID == R.id.radioTheme2)
{
bgElement.setBackgroundColor(Color.CYAN);
counter = 2;
}
if (selectedID == R.id.radioTheme3)
{
bgElement.setBackgroundColor(Color.RED);
counter = 3;
}
}
});
buttonBack.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(theme.this, Change_Color1Activity.class);
intent.putExtra("Message", "counter");
startActivity(intent);
}
});
}
}