2012-08-17 40 views
0

我创建了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编程,请不要向我扔石头。

+0

尝试使用用户名和礼品的ID用户名和礼品的EditText转换为编辑文本的自己的局部变量。然后在变量上使用获取文本。 – faizanjehangir 2012-08-17 08:04:42

回答

1

然后你会参考你的R类文件,那就是:

EditText desc = (EditText) findViewById(R.id.Description); 
... 
0

你有没有在你的onCreate()在MainActivity方法包括

EditText UserName = (EditText) findViewById(R.id.username); 
EditText Description = (EditText) findViewById(R.id.description); 

0

当您参考UserNameDescription这里指的是它们,因为它们是类。除非你有这样的类,否则将会声明一个错误,因为这些类无法找到(或“解析”)。 您甚至可以通过语法高亮来注意到这一点。你看到一个亮绿色/蓝绿色的文字,如MainIntent

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); 
} 

相反,你想,你叫userNamedescriptionEditText的实例。在这些物体上,您可以执行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,主要,第二个`)以大写字母开头。

0

你还没有在你的java中初始化用户名&的描述;

EditText us_name=(EditText) findViewById(R.id.user_name); 
EditText us_desp=(EditText) findViewById(R.id.desp);