2013-02-06 2 views
-1

내 코드를 작성하지 뭔가를하고 문 경우 : 무슨 일이야 여기내가 여기에 버튼 클릭 이벤트에 대한 내 코드가

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:gravity="center" 
android:background="@drawable/green_bg" 
android:orientation="vertical" > 

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/first" 
    android:textSize="32sp" 
    android:shadowColor="#F70000" 
    android:shadowDx="2.5" 
    android:shadowDy="2.5" 
    android:textColor="#FFFDFD" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<EditText 
    android:id="@+id/registerEditText" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:singleLine="true" 
    android:textColor="#DDFED1" 
    android:hint="@string/user" 
    android:inputType="text|textCapCharacters" > 
</EditText> 

<Button 
    android:id="@+id/button1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:onClick="register" 
    android:text="@string/register" /> 

: 여기

public void register(View view) { 

    EditText user = (EditText) findViewById(R.id.registerEditText); 

    if("USER01".equals(user.getText().toString()) || "USER02".equals(user.getText().toString())) { 

     Toast.makeText(RegisterActivity.this,"Correct username!", Toast.LENGTH_SHORT).show(); 
    }else{ 
     Toast.makeText(RegisterActivity.this, "Only USER01 and USER02 is allowed for username!", Toast.LENGTH_SHORT).show(); 
    } 

} 

그리고 내 XML 레이아웃입니다 버튼을 클릭하면 LogCat에 표시됩니다.

02-07 11:10:47.155: E/AndroidRuntime(556): FATAL EXCEPTION: main 
02-07 11:10:47.155: E/AndroidRuntime(556): java.lang.IllegalStateException: Could not execute method of the activity 
02-07 11:10:47.155: E/AndroidRuntime(556): at android.view.View$1.onClick(View.java:3039) 
02-07 11:10:47.155: E/AndroidRuntime(556): at android.view.View.performClick(View.java:3480) 
02-07 11:10:47.155: E/AndroidRuntime(556): at android.view.View$PerformClick.run(View.java:13983) 
02-07 11:10:47.155: E/AndroidRuntime(556): at android.os.Handler.handleCallback(Handler.java:605) 
02-07 11:10:47.155: E/AndroidRuntime(556): at android.os.Handler.dispatchMessage(Handler.java:92) 
02-07 11:10:47.155: E/AndroidRuntime(556): at android.os.Looper.loop(Looper.java:137) 
02-07 11:10:47.155: E/AndroidRuntime(556): at android.app.ActivityThread.main(ActivityThread.java:4340) 
02-07 11:10:47.155: E/AndroidRuntime(556): at java.lang.reflect.Method.invokeNative(Native Method) 
02-07 11:10:47.155: E/AndroidRuntime(556): at java.lang.reflect.Method.invoke(Method.java:511) 
02-07 11:10:47.155: E/AndroidRuntime(556): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
02-07 11:10:47.155: E/AndroidRuntime(556): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
02-07 11:10:47.155: E/AndroidRuntime(556): at dalvik.system.NativeStart.main(Native Method) 
02-07 11:10:47.155: E/AndroidRuntime(556): Caused by: java.lang.reflect.InvocationTargetException 
02-07 11:10:47.155: E/AndroidRuntime(556): at java.lang.reflect.Method.invokeNative(Native Method) 
02-07 11:10:47.155: E/AndroidRuntime(556): at java.lang.reflect.Method.invoke(Method.java:511) 
02-07 11:10:47.155: E/AndroidRuntime(556): at android.view.View$1.onClick(View.java:3034) 
02-07 11:10:47.155: E/AndroidRuntime(556): ... 11 more 
02-07 11:10:47.155: E/AndroidRuntime(556): Caused by: android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0 
02-07 11:10:47.155: E/AndroidRuntime(556): at android.database.AbstractCursor.checkPosition(AbstractCursor.java:434) 
02-07 11:10:47.155: E/AndroidRuntime(556): at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136) 
02-07 11:10:47.155: E/AndroidRuntime(556): at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:50) 
02-07 11:10:47.155: E/AndroidRuntime(556): at tsu.ccs.capstone.RegisterActivity.retrieveNumber(RegisterActivity.java:38) 
02-07 11:10:47.155: E/AndroidRuntime(556): at tsu.ccs.capstone.RegisterActivity.register(RegisterActivity.java:46) 
02-07 11:10:47.155: E/AndroidRuntime(556): ... 14 more 

이것은 내 IF statement이 제대로 작동하는지 확인하기 위해 알아 낸 간단한 테스터입니다. 불행히도 register 버튼을 클릭 할 때마다 앱이 강제로 닫힙니다. 해결 방법이 있습니까?

+2

이 앱 강제로 닫으면, 아마 로그에 기록 예외가있다 봅니다. 로그를보고 잘못 된 것을 해결하십시오. –

+0

logcat 추적은 무엇입니까? – dumbfingers

+0

내 버튼을 클릭 한 후 내 logcat을 추가했습니다. 감사! –

답변

0

if(user.getText().toString().equals ("USER01")|| user.getText().toString().equals ("USER02")) { 
    //do your action 
}else{ 
//do your action  
} 
+0

나는 또한 그것을 시도했고 강제로 닫는다. 게다가'If (user.length()> 0)'조건을 실행하고 강제로 닫습니다. –

+0

user.getText(). toString(). length> 0을 사용해야합니다. – edwin

관련 문제