2013-03-17 3 views
0

다음 코드에 AsyncTask (성공적으로)를 추가하는 방법을 알고 싶습니다. 나는 AsyncTask를 구현했다. (나의 지식에서 - 인터넷에서 찾은 정보를 사용하여) 그러나 충돌이 계속되고, 왜 확실한지 모르겠다. 어떤 도움을 주시면 감사하겠습니다!JSON에 비동기 작업 추가하기 충돌 작업

JAVA :

import org.json.JSONException; 
import org.json.JSONObject; 

import com.nfc.linked.DatabaseHandler; 
import com.nfc.linked.UserFunctions; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

public class RegisterActivity extends Activity { 
Button btnRegister; 
Button btnLinkToLogin; 
EditText inputFullName; 
EditText inputEmail; 
EditText inputPassword; 
TextView registerErrorMsg; 

// JSON Response node names 
private static String KEY_SUCCESS = "success"; 
private static String KEY_ERROR = "error"; 
private static String KEY_ERROR_MSG = "error_msg"; 
private static String KEY_UID = "uid"; 
private static String KEY_NAME = "name"; 
private static String KEY_EMAIL = "email"; 
private static String KEY_CREATED_AT = "created_at"; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.register); 

    private class RegisterActivity extends AsyncTask<string, jsonobject="" string,=""> { 
     @Override 
     protected JSONObject doInBackground(linkingmanager.comze.com) { 

     } 
    // Importing all assets like buttons, text fields 
    inputFullName = (EditText) findViewById(R.id.registerName); 
    inputEmail = (EditText) findViewById(R.id.registerEmail); 
    inputPassword = (EditText) findViewById(R.id.registerPassword); 
    btnRegister = (Button) findViewById(R.id.btnRegister); 
    btnLinkToLogin = (Button) findViewById(R.id.btnLinkToLoginScreen); 
    registerErrorMsg = (TextView) findViewById(R.id.register_error); 

    // Register Button Click event 
    btnRegister.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      String name = inputFullName.getText().toString(); 
      String email = inputEmail.getText().toString(); 
      String password = inputPassword.getText().toString(); 
      UserFunctions userFunction = new UserFunctions(); 
      JSONObject json = userFunction.registerUser(name, email, password); 

      // check for login response 
      try { 
       if (json.getString(KEY_SUCCESS) != null) { 
        registerErrorMsg.setText(""); 
        String res = json.getString(KEY_SUCCESS); 
        if(Integer.parseInt(res) == 1){ 
         // user successfully registred 
         // Store user details in SQLite Database 
         DatabaseHandler db = new DatabaseHandler(getApplicationContext()); 
         JSONObject json_user = json.getJSONObject("user"); 

         // Clear all previous data in database 
         userFunction.logoutUser(getApplicationContext()); 
         db.addUser(json_user.getString(KEY_NAME), json_user.getString(KEY_EMAIL), json.getString(KEY_UID), json_user.getString(KEY_CREATED_AT)); 
         // Launch Dashboard Screen 
         Intent dashboard = new Intent(getApplicationContext(), DashboardActivity.class); 
         // Close all views before launching Dashboard 
         dashboard.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
         startActivity(dashboard); 
         // Close Registration Screen 
         finish(); 
        }else{ 
         // Error in registration 
         registerErrorMsg.setText("Error occured in registration"); 
        } 
       } 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
     } 
    }); 

    // Link to Login Screen 
    btnLinkToLogin.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View view) { 
      Intent i = new Intent(getApplicationContext(), 
        LoginActivity.class); 
      startActivity(i); 
      // Close Registration View 
      finish(); 
     } 
    }); 
} 

로그 캣 : 무딘 것에 대한

03-16 21:55:23.746: D/AndroidRuntime(483): Shutting down VM 
03-16 21:55:23.746: W/dalvikvm(483): threadid=1: thread exiting with uncaught exception (group=0x41604930) 
03-16 21:55:23.746: E/AndroidRuntime(483): FATAL EXCEPTION: main 
03-16 21:55:23.746: E/AndroidRuntime(483): java.lang.Error: Unresolved compilation problems: 
03-16 21:55:23.746: E/AndroidRuntime(483): Syntax error, insert "}" to complete ClassBody 
03-16 21:55:23.746: E/AndroidRuntime(483): Syntax error on token(s), misplaced construct(s) 
03-16 21:55:23.746: E/AndroidRuntime(483): The nested type RegisterActivity cannot hide an enclosing type 
03-16 21:55:23.746: E/AndroidRuntime(483): Illegal modifier for the local class RegisterActivity; only abstract or final is permitted 
03-16 21:55:23.746: E/AndroidRuntime(483): Syntax error on token(s), misplaced construct(s) 
03-16 21:55:23.746: E/AndroidRuntime(483): Syntax error on token """", { expected 
03-16 21:55:23.746: E/AndroidRuntime(483): Syntax error on token "=", delete this token 
03-16 21:55:23.746: E/AndroidRuntime(483): Syntax error on tokens, delete these tokens 
03-16 21:55:23.746: E/AndroidRuntime(483): The method doInBackground() of type RegisterActivity must override or implement a supertype method 
03-16 21:55:23.746: E/AndroidRuntime(483): at com.nfc.linked.RegisterActivity.<init>(RegisterActivity.java:34) 
03-16 21:55:23.746: E/AndroidRuntime(483): at java.lang.Class.newInstanceImpl(Native Method) 
03-16 21:55:23.746: E/AndroidRuntime(483): at java.lang.Class.newInstance(Class.java:1319) 
03-16 21:55:23.746: E/AndroidRuntime(483): at android.app.Instrumentation.newActivity(Instrumentation.java:1054) 
03-16 21:55:23.746: E/AndroidRuntime(483): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097) 
03-16 21:55:23.746: E/AndroidRuntime(483): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
03-16 21:55:23.746: E/AndroidRuntime(483): at android.app.ActivityThread.access$600(ActivityThread.java:141) 
03-16 21:55:23.746: E/AndroidRuntime(483): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
03-16 21:55:23.746: E/AndroidRuntime(483): at android.os.Handler.dispatchMessage(Handler.java:99) 
03-16 21:55:23.746: E/AndroidRuntime(483): at android.os.Looper.loop(Looper.java:137) 
03-16 21:55:23.746: E/AndroidRuntime(483): at android.app.ActivityThread.main(ActivityThread.java:5039) 
03-16 21:55:23.746: E/AndroidRuntime(483): at java.lang.reflect.Method.invokeNative(Native Method) 
03-16 21:55:23.746: E/AndroidRuntime(483): at java.lang.reflect.Method.invoke(Method.java:511) 
03-16 21:55:23.746: E/AndroidRuntime(483): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
03-16 21:55:23.746: E/AndroidRuntime(483): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
03-16 21:55:23.746: E/AndroidRuntime(483): at dalvik.system.NativeStart.main(Native Method) 
03-16 21:55:26.296: I/Process(483): Sending signal. PID: 483 SIG: 9 
+0

를 참조 할 수 있습니다. 이렇게하면 많은 컴파일 오류로 실행할 수 있습니다. 스택 추적 만 보시면됩니다.) –

+0

그것은 내가 실행하는 것을 허락하지 않고있다. 나는 오류를 삭제하기 만하면된다. – user2161499

+0

Eclipse 및 ADT는 정상적으로 작동합니다.) – user2161499

답변

1

죄송합니다. 자바 구문과 스레딩에 대한 기본적인 오해가 있습니다. 누군가가 코드를 "작동"하도록 다시 포맷 할 수도 있지만, 나는 책을 치지 않고 오랫동안 Painville에 머물러있을 것이라고 생각합니다.

실제로 "doInBackground"메소드에 코드가 없습니다. 또한 인수가 유효하지 않습니다. 계속 진행 하겠지만, 진지하게, Android 코드를 시도하기 전에 기본 Java 코딩 기술이 필요합니다. 다른 플랫폼과 동일합니다 (기본 코딩 기술이 필요합니다).

+0

정말 도움이 될 수 있습니다. ... 내가 painville에 갇혀 있어도. (마감 기한이 지났음) – user2161499

+0

@ user2161499 기본 지식이 없어도 아무도 도움을 줄 수 없습니다. – wtsang02

+1

기본 이해가 있습니다. 등록 화면을 만드는 방법에 대한 자습서를 따르려고하지만 자습서 에서처럼 코드를 가져올 때 강제 종료 문제가 발생합니다. http://www.androidhive.info/2012/01/android-login-and-registration-with-php-mysql-and-sqlite/ – user2161499

0

onCreate() 중에서 선택하십시오.

추가 정보를 위해 당신은 당신이 일식 또는 ADT 플러그인을 다시 설치해야 할 수도 있습니다 생각 this guide.