在我的登录 Activity 中...我询问用户名和密码..我想检查用户是否是授权用户..如果用户获得授权然后我的网络 Activity menu.java 启动..否则他应该被重定向到相同的登录页面...警告...该用户不存在...该怎么做??
我已经写好了我的 Activity ..我怎样才能开始下一个 Activity ??
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class Login_Menu extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.login_lay);
final TextView tv=(TextView) findViewById(R.id.login_stat_tv);
final EditText uname=(EditText)findViewById(R.id.uname);
final EditText pass=(EditText)findViewById(R.id.pass);
Button login=(Button)findViewById(R.id.login_but);
Button cancel=(Button)findViewById(R.id.cancel_but);
final HttpClient client = new DefaultHttpClient();
String url="http://10.0.2.2:7001/f/json.jsp";
final HttpPost post = new HttpPost(url);
login.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
try{
List<NameValuePair> pairs = new ArrayList<NameValuePair>();
pairs.add(new BasicNameValuePair("username",uname.getText().toString()));
pairs.add(new BasicNameValuePair("password",pass.getText().toString()));
post.setEntity(new UrlEncodedFormEntity(pairs));
HttpResponse response = client.execute(post);
BufferedReader rd = new BufferedReader(new InputStreamReader(
response.getEntity().getContent()));
String line = null;
while ((line = rd.readLine()) != null) {
tv.append(line);
}
//startActivity(new Intent("com.campuspro.start.DEMO_RETRV"));
}
catch(Exception e)
{
e.printStackTrace();
}
}
});
cancel.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
uname.getText().clear();
pass.getText().clear();
}
});
}
}
最佳答案
在这里使用Aysntask
类
在 doInBackground()
中执行操作并在 onPostExecute()
中给出结果
public class Login_Menu extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.login_lay);
final TextView tv=(TextView) findViewById(R.id.login_stat_tv);
final EditText uname=(EditText)findViewById(R.id.uname);
final EditText pass=(EditText)findViewById(R.id.pass);
Button login=(Button)findViewById(R.id.login_but);
Button cancel=(Button)findViewById(R.id.cancel_but);
final HttpClient client = new DefaultHttpClient();
String url="http://10.0.2.2:7001/f/json.jsp";
final HttpPost post = new HttpPost(url);
new login().execute("");
}
private class login extends AsyncTask<String, Void, Void>{
ProgressDialog dialog = ProgressDialog.show(activity.this, "", "Loading, Please wait...");
@Override
protected int doInBackground(String... params) {
// TODO Auto-generated method stub
Log.i("thread", "Doing Something...");
//authentication operation
try{
List<NameValuePair> pairs = new ArrayList<NameValuePair>();
pairs.add(new BasicNameValuePair("username",uname.getText().toString()));
pairs.add(new BasicNameValuePair("password",pass.getText().toString()));
post.setEntity(new UrlEncodedFormEntity(pairs));
HttpResponse response = client.execute(post);
BufferedReader rd = new BufferedReader(new InputStreamReader(
response.getEntity().getContent()));
String line = null;
while ((line = rd.readLine()) != null) {
tv.append(line);
}
//startActivity(new Intent("com.campuspro.start.DEMO_RETRV"));
}
catch(Exception e)
{
e.printStackTrace();
}
return val;
}
protected void onPreExecute(){
//dialog.dismiss();
Log.i("thread", "Started...");
dialog.show();
}
protected void onPostExecute(int result){
Log.i("thread", "Done...");
if(dialog!=null)
dialog.dismiss();
if(result){
toast.setText("No User Found, please try again!");
toast.show();
}else{
Intent myIntent = new Intent(ctx, main.class);
myIntent.putExtra("user", user);
startActivity(myIntent);
}
}
}
关于android - 如何在我登录 Activity 后开始 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10039683/