活动之间交换数据
问题描述:
我创建了2 Activities
,Main和Second。我想发送文本,从Main到Second活动中输入框EditText
。第一个EditText
的ID是UserName
,第二个是Description
。活动之间交换数据
主活动的代码是:
package com.example.test;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.support.v4.app.NavUtils;
import android.content.Intent;
import android.widget.EditText;
public class Main extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void onClick(View v) {
Intent intent = new Intent(Main.this, Second.class);
intent.putExtra("username", UserName.getText().toString());
intent.putExtra("gift", Description.getText().toString());
startActivity(intent);
}
public void ButtonOneClick(View v) {
switch (v.getId()) {
case R.id.button1:
Intent i = new Intent(this, Second.class);
startActivity(i);
break;
}
}
}
第二个活动的
的完整代码: 包com.example.test;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.TextView;
public class Second extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
TextView txtInfo = (TextView)findViewById(R.id.TextOne);
String user = "ЖЫвотное";
String gift = "дырку от бублика";
user = getIntent().getExtras().getString("username");
gift = getIntent().getExtras().getString("gift");
txtInfo.setText(user + " , вам передали " + gift);
}
}
和错误:
main.java: Description cannot be resolved
main.java: UserName cannot be resolved
对不起,我的英语
感谢您的帮助
附:我正在学习Java和第三天的android编程,请不要向我扔石头。
答
然后你会参考你的R
类文件,那就是:
EditText desc = (EditText) findViewById(R.id.Description);
...
答
你有没有在你的onCreate()在MainActivity方法包括
EditText UserName = (EditText) findViewById(R.id.username);
EditText Description = (EditText) findViewById(R.id.description);
。
答
当您参考UserName
和Description
这里指的是它们,因为它们是类。除非你有这样的类,否则将会声明一个错误,因为这些类无法找到(或“解析”)。 您甚至可以通过语法高亮来注意到这一点。你看到一个亮绿色/蓝绿色的文字,如Main
或Intent
?
public void onClick(View v) {
Intent intent = new Intent(Main.this, Second.class);
intent.putExtra("username", UserName.getText().toString());
intent.putExtra("gift", Description.getText().toString());
startActivity(intent);
}
相反,你想,你叫userName
和description
类EditText
的实例。在这些物体上,您可以执行getText()
并按照自己的方式工作。 :)
public void onClick(View v) {
Intent intent = new Intent(Main.this, Second.class);
EditText userName = (EditText) findViewById(R.id.username);
EditText description = (EditText) findViewById(R.id.description);
intent.putExtra("username", userName.getText().toString());
intent.putExtra("gift", description.getText().toString());
startActivity(intent);
}
请注意我已经改变了你的变量的名称为小写开始camelCase。虽然不是一个明确的规则,但用小写字母开头的变量名被认为是好的做法('用户名,
描述,
意图) while **C**lass references like (
ÈditText,
主要,
第二个`)以大写字母开头。
答
你还没有在你的java中初始化用户名&的描述;
EditText us_name=(EditText) findViewById(R.id.user_name);
EditText us_desp=(EditText) findViewById(R.id.desp);
尝试使用用户名和礼品的ID用户名和礼品的EditText转换为编辑文本的自己的局部变量。然后在变量上使用获取文本。 – faizanjehangir 2012-08-17 08:04:42