2011-09-21 43 views
1

我完全陌生於Android,所以如果這是一個愚蠢的問題,請道歉。但我的問題是這樣的:在textview中設置文本與另一個類中的edittext中的文本

我已經爲我的應用程序中的每個頁面創建了許多類,並且我希望從另一個類的edittext字段中的文本更新特定類的textview中的文本。

更具體地說,我有一個登錄頁面,我希望將用戶名(由用戶在edittext框中輸入)轉移到登錄頁面的文本框中。目前,我試圖通過日誌在頁面按鈕使用點擊監聽器日誌來實現這一目標:

public void sign_in_click(View view) { 
    EditText tv1 = (EditText) findViewById(R.id.txt_input_uname); 

    String username=tv1.getText().toString(); 

    LoginDetails unamede=new LoginDetails(); 
    unamede.setuname(username); 

    Intent myIntent = new Intent(view.getContext(), customer.class); 
    startActivityForResult(myIntent, 0); 

} 

所以點擊收聽初始化我已經在其他類中定義的,像這樣一類新的變量:

public class LoginDetails { 
public String uname; 

public void setuname(String username){ 
     uname=username;  
} 

public String getuname(){ 
    return uname; 
} 
} 

它在登錄頁面的edittext框中給出了uname的用戶名。

然後我在登錄頁面下的OnCreate:

LoginDetails unamed= LoginDetails(); 
String username=unamed.getuname(); 

tv1.setText(username); 

但在TextView的框中的文本犯規得到任何寫入。現在我不會感到驚訝,如果我這樣做完全錯誤,但任何意見將不勝感激。謝謝

+0

哎呀是啊忘了。抱歉。現在接受 – fp30

+0

沒問題。我只想給出一個暗示,接受答案以表明什麼對你有效,讓其他人知道並尊重給予你正確答案的人的努力是一種好習慣;-) – Knickedi

回答

1

我會建議將用戶的登錄信息放入SharedPreference中。將日期轉移到其他活動。

例如...

SharedPreferences myPrefs = getSharedPreferences("USER_INFO", 0); 
myPrefsEdit.putString("USER_ID", username=tv1.getText().toString();); 
//This is the username you get from edittext 

myPrefsEdit.putString("PASSWORD", password); 
//this is the user password you get from edittext 

myPrefsEdit.commit(); 

在你的下一個活動。

獲取關於你SharePreference像...

SharedPreferences info = getSharedPreferences("USER_INFO, 0); 
String username = info.getString("USER_ID", "DOESNT EXIST"); 
String userpassword = info.getString("PASSWORD", "DOESNT EXIST"); 

這應該這樣做

+0

你在哪裏看到「不存在」在代碼中,如果user_id不存在,會發生什麼情況。你可以在這裏放任何你想要的東西。或者你可以將它設置爲null。並測試,看看如果用戶名== null,如果是這樣啓動AlertDialog告訴用戶登錄。 –

+0

感謝您的響應。我一定會嘗試這種方法。在稍微不同(但密切相關)的說明中,僅僅通過使用它的id來引用另一個活動的視圖(例如textbox,edittext等)是不可能的?如果沒有,r.id文件的確切點是什麼?它有我在應用程序中使用的所有元素的id,但是我只能從其放置的活動中引用具有其id的元素?這對我來說似乎很愚蠢 – fp30

+0

這是android構建的方式。如果您在活動中引用視圖,則該佈局必須包含您所在的小部件或佈局。身份證在你的活動。 –

0

你可以嘗試把用戶名的活動意圖額外的(當你不想堅持它在共享preferenced現在):

Intent myIntent = new Intent(view.getContext(), customer.class); 
myIntent.putExtra("uname", username); 
startActivityForResult(myIntent, 0); 

然後在的onCreate:

tv1.setText(getIntent().getStringExtra("uname")); 
+0

這可能也不錯.SharedPreference更持久可靠。 –

+0

感謝您的回覆。 coder_for_life22的方法工作正常,所以我會堅持這個特定的問題。但我確定你的建議會在應用程序的其他地方派上用場。所以再次感謝。 – fp30

相關問題