0
我的項目有問題。 我有2個類:MainActivity和Insert。 我在「插入」類中給了我一個錯誤。 dialog = new ProgressDialog(MainActivity.this); 我的錯誤是「不是封閉類」。 請幫我錯誤:不是封閉類
代碼中插入:
public class Insert extends AsyncTask<String, Void, Boolean> {
ProgressDialog dialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
dialog = new ProgressDialog(MainActivity.this); //error is here
dialog.setMessage("Inserting details, please wait");
dialog.setTitle("Connecting... ");
dialog.show();
dialog.setCancelable(false);
}
@Override
protected Boolean doInBackground(String... urls) {
try {
List<NameValuePair> insert = new ArrayList<NameValuePair>();
insert.add(new BasicNameValuePair("name", nameStr));
insert.add(new BasicNameValuePair("country", countryStr));
insert.add(new BasicNameValuePair("email", emailStr));
insert.add(new BasicNameValuePair("hobbies", hobbiesStr));
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(
"http://bookcompr.netne.net/input.php");
httpPost.setEntity(new UrlEncodedFormEntity(insert));
HttpResponse response = httpClient.execute(httpPost);
HttpEntity entity = response.getEntity();
return true;
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
protected void onPostExecute(Boolean result) {
dialog.cancel();
AlertDialog.Builder ac = new AlertDialog.Builder(MainActivity.this);//error is here
ac.setTitle("Result");
ac.setMessage("Details Successfully Inserted");
ac.setCancelable(true);
ac.setPositiveButton(
"Ok",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = ac.create();
alert.show();
}
}
CODE MainActivity
public class MainActivity extends AppCompatActivity {
EditText name, country, email, hobbies;
Button insert;
String nameStr, countryStr, emailStr, hobbiesStr;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
name = (EditText) findViewById(R.id.name);
country = (EditText) findViewById(R.id.country);
email = (EditText) findViewById(R.id.email);
hobbies = (EditText) findViewById(R.id.hobbies);
insert = (Button) findViewById(R.id.insert);
insert.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
nameStr = name.getText().toString();
countryStr = country.getText().toString();
emailStr = email.getText().toString();
hobbiesStr = hobbies.getText().toString();
new Insert().execute();
}
});
}
public class Insert extends AsyncTask<String, Void, Boolean> {
ProgressDialog dialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
dialog = new ProgressDialog(MainActivity.this);
dialog.setMessage("Inserting details, please wait");
dialog.setTitle("Connecting... ");
dialog.show();
dialog.setCancelable(false);
}
@Override
protected Boolean doInBackground(String... urls) {
try {
List<NameValuePair> insert = new ArrayList<NameValuePair>();
insert.add(new BasicNameValuePair("name", nameStr));
insert.add(new BasicNameValuePair("country", countryStr));
insert.add(new BasicNameValuePair("email", emailStr));
insert.add(new BasicNameValuePair("hobbies", hobbiesStr));
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(
"http://bookcompr.netne.net/input.php"); // link to connect to database
httpPost.setEntity(new UrlEncodedFormEntity(insert));
HttpResponse response = httpClient.execute(httpPost);
HttpEntity entity = response.getEntity();
return true;
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
protected void onPostExecute(Boolean result) {
dialog.cancel();
AlertDialog.Builder ac = new AlertDialog.Builder(MainActivity.this);
ac.setTitle("Result");
ac.setMessage("Details Successfully Inserted");
ac.setCancelable(true);
ac.setPositiveButton(
"Ok",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alert = ac.create();
alert.show();
}
}
}
把每個班在適當命名的專用文件(和改變'新ProgressDialog(MainActivity.this);''到新ProgressDialog(Insert.this);') – 2016-09-13 18:23:16
不能使用訪問'context' 'MainActivity.this'因爲。你需要爲該類提供一個有效的'context'(例如在構造函數中) –
Shaishav