在我的活動Android的工作,我有以下幾點看法與視圖
TextView player1;
TextView player2;
TextView player3;
TextView player4;
EditText player1name;
EditText player2name;
EditText player3name;
EditText player4name;
每TextView的的應用了的onclick監聽器。並啓動了OnClick功能。
當我們到達的onClick這就是我目前在做:
@Override
public void onClick(View v) {
//the v variable is the clicked textview, in this case "player1"
//hide the textview and show the resultant edittext
v.setVisibility(View.GONE);
player1name.setVisibility(View.VISIBLE);
//set focus on edit text and when focus is lost hide it and set the textview text
player1name.requestFocus();
imm.showSoftInput(player1name, InputMethodManager.SHOW_FORCED);
player1name.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View y, boolean x) {
v.setVisibility(View.VISIBLE);
player1name.setVisibility(View.GONE);
imm.hideSoftInputFromWindow(player1name.getWindowToken(), 0);
String name = player1name.getText().toString();
if (name.equals("")) {
v.setText("Player Name1");
} else {
v.setText(name);
}
}
});
}
但是這種解決方案我將需要複製該代碼,並更改player2視圖名稱 - player2name,player3 - player3name等
我明顯可以通過v獲取單擊的TextView,但是我似乎無法做到的是抓住其對應的EditText。
我曾想過這樣做的:
View test = v + "name";
//then i replace all references to player1name with the test variable
但它不工作,它要我查看測試轉換;換成字符串
有什麼建議嗎?
編輯:可以更容易瞭解我的問題
非常感謝。除了我不能通過v或e到我的onFocusChangeListener ...任何方式做到這一點? –
你是什麼意思通過? –
沒關係,它要求在監聽器裏最終的變數,我也不得不加上強制轉換爲TextView的和EditText上的set和get文本。現在排序它感謝您的幫助 –