2011-08-05 120 views
0

我試圖從用戶填寫在三個盒子的EditText取號,然後通過一些簡單的數學和用戶按下一個按鈕,有必要通過一個TextView的答案。此外,無論何時我在模擬器上啓動此應用程序,它都表示只要點擊按鈕即可轉至此佈局和代碼,它需要強制關閉。下面是代碼:無法從三個EditText獲得結果?

    package com.app.one; 

import com.app.one.R; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

public class monthlyp extends Activity { 
int x = 10; 
int y= 10; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.monthlyp); 

     final TextView input = (TextView) findViewById(R.id.editone);   
     final Button btn = (Button) findViewById(R.id.equals); 
     final EditText textView13 = (EditText) findViewById(R.id.textView13); 

     btn.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 


      y = Integer.parseInt(input.getText().toString()); 
      textView13.setText(String.valueOf(y)); 
     } 
     });  
} 
    } 

我知道它只有一個區域的EditText但那是因爲我需要幫助增加了兩個,並能夠使用他們作爲整數加法/減法/分/乘。 XML有全部三個編輯文本框和一個等號按鈕,可以解決輸入內容。感謝您的幫助,請問我是否需要更多信息。

+0

你能爲你的錯誤提供logcat的? – thegrinner

+0

問題是我保存並啓動它時沒有任何錯誤。它只是在這個屏幕/文件崩潰。添加兩個EditTexts所需的代碼是多少,而仍然有一個equals按鈕組合所有EditTexts?謝謝! – androidguy

回答

0

你說的輸入是一個TextView

final TextView input = (TextView) findViewById(R.id.editone);  

那麼你得到了的TextView的整數值

y = Integer.parseInt(input.getText().toString()); 

我認爲不是你打算

+0

是啊,我換周圍的人,現在我將如何在添加更多的文本框,並各有一個轉換是什麼進入它永遠是最好的計算,然後釋放一個最終答案給用戶一個整數或者一個字符串,可能textView的形式,但我不確定。非常感謝 – androidguy

+0

在你的佈局,你可以在定義更多的EditText框,然後你就點擊按鈕,你想從所有的這些箱子做數據做計算,你可以使用 – dten

+0

我應該做這樣的:最後EditText input =(EditText)findViewById(R.id。editone);最終EditText input2 =(EditText)findViewById(R.id.edittwo);然後,我將使用什麼代碼來接受輸入的內容,然後像editone x edittwo或等號按鈕被按下後做什麼? – androidguy

2

首先看來你輸入的是一個TextView,你的輸出是一個EditText。這看起來倒退了。如果你的XML是正確的,並且你的輸入是一個EditText,你可能會試圖將其轉換爲TextView。

+0

雖然沒有堆棧跟蹤它真的在這裏的黑暗中拍攝... – Pyrodante

+0

好吧,我打開他們身邊,但我不知道如何再添加更多的EditText的,但仍然有它們全部連接到一個按鈕,它可以解決什麼進入。由於 – androidguy

0

你似乎越來越來自TextView的輸入並將輸出發佈到EditText。難道這不是相反嗎?

+0

啊... @Pyrondante擊敗了我。 – Earl

1

兩件事情的時候了:

  1. 你轉換的字符串爲整數,然後返回一個整數再次把它在其他領域。這很糟糕,它被稱爲悠悠碼。相反,保存字符串值並存儲它。

  2. 的Integer.parseInt()可以拋出一個NumberFormatException的,如果你不擺在那的EditText有效的整數。您需要嘗試/捕捉該異常並處理無效情況,最好通過在編輯文本中調用setError()。

http://developer.android.com/reference/java/lang/Integer.html#parseInt%28java.lang.String%29

編輯:是的,像其他人說..不要對你的EditText 「textView13」