【发布时间】:2013-01-01 15:34:52
【问题描述】:
当我在一项新活动中写一个国家/地区时,我有家庭作业要做(forresult) 它将把它写在主活动和我写的颜色中,新活动会将文本颜色更改为我写的颜色。 但“确定”和“取消”按钮不会传输任何搜索解决方案但没有成功的信息
MainActivity -
public class MainActivity extends Activity implements OnClickListener {
TextView tvDisplayCountry;
Random crazy;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
initsialize();
}
private void initsialize() {
Button bAddCountry = (Button) findViewById(R.id.bAddCountry);
bAddCountry.setOnClickListener(this);
tvDisplayCountry = (TextView) findViewById(R.id.tvDisplayCountry);
// ImageView ivCountryPhoto =
// (ImageView)findViewById(r.id.ivCountryPhoto);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bAddCountry:
Intent countryactivityIntent = new Intent(MainActivity.this,
CountryActivity.class);
startActivityForResult(countryactivityIntent, 12);
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(resultCode){
case 12:
if (resultCode == Activity.RESULT_OK) {
String Country = data.getStringExtra("country");
String Color = data.getStringExtra("color");
tvDisplayCountry.setText(Country);
if (Color.equalsIgnoreCase("blue")) {
tvDisplayCountry.setTextColor(android.graphics.Color.BLUE);
} else if (Color.equalsIgnoreCase("yellow")) {
tvDisplayCountry
.setTextColor(android.graphics.Color.YELLOW);
} else if (Color.equalsIgnoreCase("gray")) {
tvDisplayCountry.setTextColor(android.graphics.Color.GRAY);
} else if (Color.equalsIgnoreCase("red")) {
tvDisplayCountry.setTextColor(android.graphics.Color.RED);
}
else{
Toast.makeText(MainActivity.this, "canceld", Toast.LENGTH_SHORT).show();
}
break;
}
}
super.onActivityResult(requestCode, resultCode, data);
}
}
国家活动 -
public class CountryActivity extends Activity implements OnClickListener {
EditText etCountry, etColor;
String getCountry, getColor;
Button bOk,bCancel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_country);
init();
}
private void init() {
etColor = (EditText)findViewById(R.id.etColor);
etCountry = (EditText)findViewById(R.id.etCountry);
bOk = (Button)findViewById(R.id.bOk);
bCancel = (Button)findViewById(R.id.bCancel);
bOk.setOnClickListener(this);
bCancel.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bOk:
Intent myIntet = new Intent();
getCountry = etCountry.getText().toString();
myIntet.putExtra("country",getCountry );
getColor = etColor.getText().toString();
myIntet.putExtra("color", getColor);
setResult(Activity.RESULT_OK, myIntet);
finish();
break;
case R.id.bCancel:
Intent myIntent = new Intent();
setResult(Activity.RESULT_CANCELED, myIntent);
finish();
break;
}
}
【问题讨论】:
-
您在 LogCat 中是否遇到任何错误?
-
请在您的代码中添加一些 Log.i("","Something usefull") 并检查哪里有问题。我们无法测试您的整个代码!
-
在日志中没有问题 cat push ok 或 cancel 并且主要活动打开没有变化
-
您还应该考虑关注Java naming conventions。您的“Color”和“Country”变量是 UpperCamelCase,通常为类和接口保留。变量名应为小驼峰式。 Android(和 Java AWT)有一个 Color 类,您的代码看起来像是在尝试访问该类的静态 equalsIgnoreCase() 方法。
标签: android android-intent start-activity