![](/img/trans.png)
[英]getting text from dynamically created edittext into a button android java
[英]getting text from EditText in Android on click of button
嗨,我正在使用android中的計算器。 我正在根據某個特定編號的點擊顯示一個EditText,例如,當用戶按下1時它將顯示1.現在,當用戶單擊2時它將顯示12,依此類推。
我有這樣的事情
public class Main extends Activity implements OnClickListener {
public static int no1=0,no2=0,op=0,flag=0;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
EditText display1=(EditText) findViewById(R.id.display);
Button one= (Button) findViewById(R.id.one);
one.setOnClickListener(this);
}
public void onClick(View v) {
if(v.getId()==R.id.one)
{
switch(flag)
{
case 1:no1*=10+1;display1.setText(no1);
case 2:no2*=10+1;display1.setText(no2);
}
}
但在這里我收到錯誤消息,因為“無法解析display1”。
任何解決方案,使工作.. ??
因為它僅在您的onCreate方法中可用。 在班級中將其聲明為字段。
private EditText display1;
有時,完整的代碼示例有幫助:
public class Main extends Activity implements OnClickListener {
private int no1=0;
private int no2=0;
private int op=0;
private int flag=0;
private EditText display1;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
display1=(EditText) findViewById(R.id.display);
Button one= (Button) findViewById(R.id.one);
one.setOnClickListener(this);
}
public void onClick(View v) {
if(v.getId()==R.id.one)
{
switch(flag)
{
case 1:no1*=10+1;display1.setText(no1);
case 2:no2*=10+1;display1.setText(no2);
}
}
}
基本上,您想將display1聲明為私有實例變量。 其他變量不必是靜態的,應該聲明為私有。 聲明在單獨的行上格式化,以提高可讀性。
玩得開心。
全局聲明您的EditText和Button。
最好在EditText中顯示一個字符串,這樣您就可以輕松地附加和擦除。 然后,您可以將其解析為整數,以便能夠對其進行數學運算。
首先,您應該聲明按鈕並全局編輯文本:
public class Main extends Activity implements OnClickListener {
private EditText display1 = (EditText) findViewById(R.id.display);
private Button one= (Button) findViewById(R.id.one);
private Button two= (Button) findViewById(R.id.two);
如果您將按鈕標簽設置為數字,則可以這樣使用它:
public void onClick(View view){
display1.setText(display1.getText.toString() + ((Button) view).getText().toString());
}
這樣,您可以將數字附加到顯示字符串的末尾。 如果要使用顯示的數字,可以使用以下代碼:
int number = Integer.parseInt(display1.getText().toString());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.