사전 검색결과 이와 비슷한 질문이 앞에 있긴 했으나 제 실력으론 분명히 맞게 하고 있는 것 같은데 디벅을 해 보면
java.lang.NumberFormatException: unable to parse '' as integer
요게 뜹니다. 어찌해야 할지???
네이버와 구글을 찾아봐도 이것 외에는 다른것이 없던데 왜일까요???
null일것을 염려해서 "" + 를 arg에 추가해 보기도 했는데 역시나....
혹시 다른 외적인 잘못이???
아래에 코드와 XML 화일을 보시고 문제점을 좀 지적해 주세요...
초보올림.
EditText ff = (EditText)findViewById(R.id.daysf);
int f_num = Integer.parseInt(ff.getText().toString());
<EditText
android:id="@+id/daysf"
android:layout_width="45dp"
android:layout_height="35dp"
android:inputType="number"
android:maxLength="2"
android:layout_gravity="center" />
main activity 의 onCreate메써드에
ff = (EditText)findViewById(R.id.daysf); 이 선언되어 있구요,
버튼을 눌러 메인화면에서 실행 메써드로 들어가면 에디터가 뜨도록 되어 있습니다.
초기화도 시켰구요.
그래도 마찬가지......참말로 미스테리합니다.??!!!
ff = (EditText)findViewById(R.id.daysf); 이 선언되어 있구요,
버튼을 눌러 메인화면에서 실행 메써드로 들어가면 에디터가 뜨도록 되어 있습니다.
초기화도 시켰구요.
그래도 마찬가지......참말로 미스테리합니다.??!!!
EditText ff;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.aa);
ff = (EditText) findViewById(R.id.daysf);
}
@Override
public void onBackPressed() {
super.onBackPressed();
int f_num = 0;
if (!ff.equals("") || ff != null) {
f_num = Integer.parseInt(ff.getText().toString());
} else
f_num = 0;
Log.e("aa", f_num + "");
}
}
이런식으로 해보니까 잘 되는데욤..EditText에 암것도 입력안하고 뒤로가기 누르면 에러는 나는데 그건 에러처리를 해줘야 할것 같고요
어쨌든 위와같이 해 보니 일단 에러는 비켜가는데 입력데이타를 못가져오고
백을 누르면 에러나구요.
별도 실행메써드에 넣어 해 보면 Null Pointer에러납니다.
int 변수를 전역변수로 사용하세요.
int 변수가 지역변수라서 다른 메소드에서 못읽는 겁니다.
그리니까
public class Main extends Activity {
EditText ff;
int f_num; <------ 이런식으로
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.aa);
위에서 메인 엑티비티에 변수선언 해주고 사용해야 onCreate에서 입력값을 받아서 다른 메소드에서 사용가능하도록 해야합니다.
테스트 전 소스를 올립니다.
무슨 문제일까요??
public class IntinputTest extends Activity {
EditText ff;
TextView mv;
int f_num;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mv = (TextView)findViewById(R.id.ffff);
ff = (EditText)findViewById(R.id.daysf);
Button gotoInput = (Button) findViewById(R.id.input);
Drawable dl = gotoInput.getBackground();
dl.setAlpha(80);
gotoInput.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
ShowInput();
}
});
}
protected void ShowInput() {
String aa = ff.getText().toString();
if (!aa.equals("") || aa != null) {
f_num = Integer.parseInt(aa);
} else
f_num = 0;
Log.e("ff", f_num + "");
mv.setText(f_num);
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<EditText
android:id="@+id/daysf"
android:layout_width="45dp"
android:layout_height="35dp"
android:inputType="number"
android:maxLength="2"
android:paddingTop="0dip"
android:layout_gravity="center" />
<TextView
android:id="@+id/ffff"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textSize="16dip"
android:paddingTop="1dip"
android:gravity="center_horizontal"
android:textColor="#ffff00" />
<Button
android:id="@+id/input"
android:layout_width="100dip"
android:layout_height="50dip"
android:textColor= "#af0000"
android:textSize="22dip"
android:textStyle="bold"
android:text="등 록"
android:layout_alignParentRight="true" />
</LinearLayout>




입력창은 뜨지도 않는데 값을 읽어오라고 그래서 에러나는거 같음.
아니면 int f_num=0; 초기화 or 에러처리 필요