我正在学习如何构建Android应用程序以及我正在构建登录应用程序。
我创建了两个类:
MainActivity
usernameField = (EditText)findViewById(R.id.editText1);
passwordField = (EditText)findViewById(R.id.editText2);
public void loginGet(View view){
String username = usernameField.getText().toString();
String password = passwordField.getText().toString();
new SigninActivity(this,status,role,1).execute(username,password);
}
SigninActivity
@Override
protected void onPostExecute(String result){
if(result == ""){
this.statusField.setText("Wrong password.");
}else{
this.statusField.setText("Login Successful");
this.roleField.setText(result);
// I would like to change the Layout here
}
}
如何在用户登录时更改布局?
我试图把setContentView,但我收到了这个警告:
方法setContentView(int)未定义类型 SigninActivity
谢谢你们。
更新
SigninActivity
public class SigninActivity extends AsyncTask<String,Void,String>{
private TextView statusField,roleField;
private Context context;
private int byGetOrPost = 0;
//flag 0 means get and 1 means post.(By default it is get.)
public SigninActivity(Context context,TextView statusField,
TextView roleField,int flag) {
this.context = context;
this.statusField = statusField;
this.roleField = roleField;
}
protected void onPreExecute(){
}
@Override
protected String doInBackground(String... arg0) {
try{
String username = (String)arg0[0];
String password = (String)arg0[1];
String link = "http://10.0.2.2/example/teste.php?username="
+username+"&password="+password;
URL url = new URL(link);
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet();
request.setURI(new URI(link));
HttpResponse response = client.execute(request);
BufferedReader in = new BufferedReader
(new InputStreamReader(response.getEntity().getContent()));
StringBuffer sb = new StringBuffer("");
String line="";
while ((line = in.readLine()) != null) {
sb.append(line);
break;
}
in.close();
return sb.toString();
}catch(Exception e){
return new String("Exception: " + e.getMessage());
}
}
@Override
protected void onPostExecute(String result){
if(result == ""){
this.statusField.setText("Wrong password.");
}else{
this.statusField.setText("Login Successful");
this.roleField.setText(result);
MainActivity.setAuth(context);
setContentView(R.layout.activity_main);
}
}
}
MainActivity
public class MainActivity extends Activity {
private EditText usernameField,passwordField;
private TextView status,role,method;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
usernameField = (EditText)findViewById(R.id.editText1);
passwordField = (EditText)findViewById(R.id.editText2);
status = (TextView)findViewById(R.id.textView6);
role = (TextView)findViewById(R.id.textView7);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void loginGet(View view){
String username = usernameField.getText().toString();
String password = passwordField.getText().toString();
new SigninActivity(this,status,role,0).execute(username,password);
}
}
答案 0 :(得分:0)
您应该了解如何将数据从Async任务传递回Activity