2014-02-21 5 views
1

Я не могу получить целочисленное значение от EdiText(edText). Я не знаю, почему эта проблема возникает. Часть под Catch выполняется вместо Try.Не удается получить целочисленное значение из EditText

public class Ybus_Activity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_ybus); 
     //Creating Linear Layout 
     final LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT, 
       LayoutParams.WRAP_CONTENT); 
     final LinearLayout main = (LinearLayout)findViewById(R.id.android_main_layout); 
     //Creating TextView 
     TextView getData=new TextView(this); 
     getData.setText("Enter the number of LineData : "); 
     getData.setId(5); 
     getData.setLayoutParams(params); 
     main.addView(getData); 
     //Creating EdiText 
     final EditText edText = new EditText(this); 
     edText.setId(3); 
     edText.setLayoutParams(params); 
     edText .setWidth(100); 
     edText .setImeOptions(EditorInfo.IME_ACTION_NEXT); 
     edText .setInputType(InputType.TYPE_CLASS_NUMBER); 
     edText .setKeyListener(DigitsKeyListener.getInstance()); 
     edText .setMaxLines(1); 
     main.addView(edText); 
     final String ed=edText.getText().toString(); 
     //Creating Button for displaying integer from edText 
     Button bt = new Button(this); 
     bt.setText("Click to enter Linedata"); 
     bt.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); 
     main.addView(bt); 
     final TextView text = new TextView(this); 
     bt.setOnClickListener(new View.OnClickListener() 
     { 
      public void onClick(View v) 
      { 
       int i = 0; 
       try{ 
        i =Integer.parseInt(ed); 
        text.setText(i); 
       }catch(NumberFormatException ex){ 
        text.setText("Value at TextView is not a valid integer"); 
       } 
      } 
     }); 
     main.addView(text); 
    } 
} 
+0

почему у получить текст из edText в OnCreate, не должна быть в методе OnClick? – pepela

+0

@pepela нет, он должен быть в onClick() ... Это была ошибка, которую я сделал ... И теперь решил ... – gkn06

ответ

1

Привет вы можете использовать строку, чтобы показать на TextView, так что вы можете сделать следующее

 bt.setOnClickListener(new View.OnClickListener() 
     { 
      public void onClick(View v) 
      { 
       String ed=edText.getText().toString(); 
       int i = 0; 
       try{ 
        i =Integer.parseInt(ed); 
       //setting value here 
       text.setText(String.valueof(i)); 
       //or you can do like this 
       // text.setText(i+""); 
       }catch(NumberFormatException ex){ 
        text.setText("Value at TextView is not a valid integer"); 
       } 
      } 
     }); 
+0

Я использовал это ... но все еще получаю ошибка ... это оператор catch «Значение в TextView не является допустимым целым числом» выполняет – gkn06

+0

i обновил ответ, пожалуйста, посмотрите! –

+0

bro ... thank u so much ... Он работает ... не могли бы вы объяснить об этом ... – gkn06

1

Преобразовать int в String для отображения содержимого в TextView. Это из-за setText(CharacterSequence) установило CharacterSequence.

text.setText(String.valueof(i)); 

Реализуйте Кнопка нажмите слушателю таким образом:

bt.setOnClickListener(new View.OnClickListener() 
{ 
public void onClick(View v) 
{ 
int i = 0; 
try{ 
    String ed=edText.getText().toString(); 
    i =Integer.parseInt(ed); 
    text.setText(String.valueOf(i); 

}catch(NumberFormatException ex){ 
    text.setText("Value at TextView is not a valid integer"); 
    } 
} 
}); 
+0

@MD, но мне нужно целочисленное значение ... – gkn06

1

Переместить этот String ed=edText.getText().toString();

bt.setOnClickListener(new View.OnClickListener() 
{ 
public void onClick(View v) 
{ 
    int i = 0; 
    try{ 
     String ed=edText.getText().toString(); 
     i =Integer.parseInt(ed); 
     text.setText(String.valueOf(i)); 
    }catch(NumberFormatException ex){ 
     e.printStacktrace(); 
    } 
} 
}); 

внутри кнопки нажмите слушателем

Также setText(int) (я это ИНТ значение я) ищет ресурс с указанным идентификатором. Если вы не нашли, вы получите ResourceNotFOundException. Вместо того, чтобы использовать setText(CharacterSequence), для которого нужно использовать text.setText(String.valueOf(i));

0

Эта нанизывать:

text.setText(i+""); 

И получить int value

int a = Integer.parseInt(text.getText().toString()); 
0

Вы вносите изменения:

i =Integer.parseInt(ed); 
text.setText(i); 

к:

i = Integer.parseInt(edText.getText().toString()); 
text.setText(i+""); 
Смежные вопросы