Как запустить новую деятельность
Это мой основной класс..
package com.college.dypiet; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import static android.R.attr.password; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onlogin(View view) { EditText editText=(EditText) findViewById(R.id.editText); EditText editText1=(EditText) findViewById(R.id.editText2); String message=editText.getText().toString(); String message1=editText1.getText().toString(); String type = "login"; BackgroundWorker backgroundWorker = new BackgroundWorker(this); backgroundWorker.execute(type,message,message1); } }
Я создал еще один класс, то есть backgroundworker
вот его код...
package com.college.dypiet; import android.app.AlertDialog; import android.content.Context; import android.content.Intent; import android.os.AsyncTask; import android.content.SharedPreferences; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLEncoder; public class BackgroundWorker extends AsyncTask<String,Void,String> { Context context; AlertDialog alertDialog; BackgroundWorker (Context ctx) { context = ctx; } @Override protected String doInBackground(String... params) { String type = params[0]; String login_url = "..#$^&%&&..../login.php"; if(type.equals("login")) { try { String name = params[1]; String password = params[2]; URL url = new URL(login_url); HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection(); httpURLConnection.setRequestMethod("POST"); httpURLConnection.setDoOutput(true); httpURLConnection.setDoInput(true); OutputStream outputStream = httpURLConnection.getOutputStream(); BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8")); String post_data = URLEncoder.encode("name","UTF-8")+"="+URLEncoder.encode(name,"UTF-8")+"&" +URLEncoder.encode("password","UTF-8")+"="+ URLEncoder.encode(password,"UTF-8"); bufferedWriter.write(post_data); bufferedWriter.flush(); bufferedWriter.close(); outputStream.close(); InputStream inputStream = httpURLConnection.getInputStream(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1")); String result=""; String line=""; while((line = bufferedReader.readLine())!= null) { result += line; } bufferedReader.close(); inputStream.close(); httpURLConnection.disconnect(); return result; } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } return null; } @Override protected void onPreExecute() { alertDialog = new AlertDialog.Builder(context).create(); //alertDialog.setTitle("Login Status"); } @Override protected void onPostExecute(String result) { alertDialog.setMessage(result); alertDialog.show(); Intent intent=new Intent(this,Teacher.class);//error here help!! } @Override protected void onProgressUpdate(Void... values) { super.onProgressUpdate(values); } }
Что я уже пробовал:
логин работает отлично .
Как я могу запустить новую деятельность (ее название 'Teacher.class") использование намерения.
Когда я пытаюсь использовать Intent, он говорит: "не удается разрешить конструктор...."
пожалуйста помочь
Richard MacCutchan
Конструктор не помечен public
.
chinu1d
все еще давая ту же ошибку
chinu1d
Все еще не работает
David Crow
Вы не вызывали startActivity () или startActivityForResult (). Вы получаете ошибку во время компиляции или выполнения? Возникает ли исключение?
chinu1d
ну это ошибка времени компиляции
startActivity не запрашивает по какой-то причине, и когда я пишу его самостоятельно, он дает "не может разрешить метод" .. ошибка
David Crow
Что значит "не побуждать"? Метод startActivity () относится к классу Context. Попытка использовать его в AsyncTask. onPostExecute () вырвана из контекста. Попробуйте что-нибудь вроде:
BackgroundWorker (контекст ctx)
{
это.контекст = СТХ.getApplicationContext();
}
защищенная пустота onPostExecute()
{
...
контекст. startActivity (намерение);
}
Richard MacCutchan
Вы обновили это, но я не вижу никакой новой информации.