2016-03-27 11 views
0

ProgressDialog başlatma işleminde, LoginActivity.this bir kapsayıcı sınıf olmadığını gösteriyor. onPostExecute() yönteminde Tost yürütülüyor ve getApplicationContext() yöntemi çözümlenemiyor.getApplicationContext() yöntemi çözümlenemiyor, LoginActivity.this bir kapsayıcı sınıf değil

public class LoginActivity extends AppCompatActivity { 

EditText et1,et2; 
Button b; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_login2); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    et1=(EditText)findViewById(R.id.editText5); 
    et2=(EditText)findViewById(R.id.editText6); 
    b=(Button)findViewById(R.id.button2); 
} 
public void login(View view) 
{ 
    new BackgroundTask().execute(et1.getText().toString(),et2.getText().toString()); 
    Toast.makeText(this,"Button",Toast.LENGTH_LONG).show(); 
} 

} 

class Background extends AsyncTask<String, Integer, Integer> 
{ 
    ProgressDialog progressDialog=new ProgressDialog(LoginActivity.this);; 
    @Override 
    protected void onPreExecute() { 
    super.onPreExecute(); 
    progressDialog.setMessage("Processing"); 
    progressDialog.setTitle("Title"); 
    progressDialog.show(); 
} 

int check_point =0; 
String resp=""; 
@Override 
protected Integer doInBackground(String... params) { 
    try { 
     HttpClient client = new DefaultHttpClient(); 
     HttpPost post = new HttpPost("http://192.168.1.6/login.php"); 
     HttpResponse response = client.execute(post); 
     InputStream in = response.getEntity().getContent(); 
     BufferedReader reader = new BufferedReader(new InputStreamReader(in)); 
     String s; 
     while ((s = reader.readLine()) != null) { 
      resp=resp+s; 
      } 
    } 
    catch (Exception e) 
    { 
     System.out.print(e); 
    } 

    return check_point; 
} 

@Override 
protected void onPostExecute(Integer integer) { 
    super.onPostExecute(integer); 
    progressDialog.dismiss(); 
    Toast.makeText(getApplicationContext(),"ACtivity",Toast.LENGTH_LONG).show(); 
} 
} 
+0

nasıl giriş (Görünüm görünümü) fiili Düğme örneğine ilişkilidir? Lütfen, Toasts & System.out.print yerine Log'u kullanın. Neden progressDialog'u onPreExecute uygulamasından başlatıyorsunuz? AsyncTask'ın bir LoginActivity iç sınıfı olduğunu düşünürsek, neden progressDialog'u etkinlik bağlamıyla başlatıyorsunuz ve uygulama bağlamını forPostExecute kullanıyorsunuz? – randomuser

+0

o zaman ne yapmalıyım? –

+0

"LoginActivity.this" yerine "this" anahtar sözcüğünü kullanmanın sorunu çözmesi gerektiğini düşünüyorum –

cevap

1

Sınıf Arka plan bir iç sınıf değil. LoginActivity kapsamı dışında. Bu yüzden bu hatayı alıyorsunuz. Bir iç sınıf olarak hareket ettirmeyi dene.

classs ParentClass{ 
    //some fields, methods whatevenr 

    class InnerClass{ 
     // this is inner 
    } 
} 

class OutSideScope{ 
    // this is outside of the scope of the Parent Class 
} 

Mutlu kodlama ;)

+0

Oh çok teşekkürler. Bunu fark etmedim ve kodumun neden çalışmadığı konusunda endişelenmeye devam ettim. Teşekkürler. –

İlgili konular