2012-08-17 39 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);