我很難讓AlertDialog顯示出來。當用戶點擊textView時,alertdialog應該顯示帶有顯示textView內容的editText。一旦按下保存按鈕,文本視圖就會顯示editText的內容。Android AlertDialog沒有顯示
import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
public class EditProfile extends AppCompatActivity {
final DBHandler handler = new DBHandler(this);
TextView tvPassword;
EditText etPassword;
String username;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit_profile);
//Get username passed down from loginActivity
Intent intent = getIntent();
username = intent.getStringExtra("username");
User user = new User();
user = handler.getUser(username); //get user using username
//Reference textviews with findviews
tvPassword = (TextView) findViewById(R.id.tvPassword);
//SetText textviews
tvPassword.setText(user.getPassword());
//Create alert dialogs
AlertDialog dPassword = new AlertDialog.Builder(this).create();
//Create editTexts to place inside dialog
etPassword = new EditText(this);
//Set layout for dialog
dPassword.setView(etPassword);
//on clicking textbox, let user edit contents
//***PASSWORD***
dPassword.setButton(DialogInterface.BUTTON_POSITIVE, "SAVE", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
tvPassword.setText(etPassword.getText());
}
});
tvPassword.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
etPassword.setText(tvPassword.getText());
}
});
//NOW UPDATE DB
handler.updateUser(username, tvEmail.getText().toString(), tvPassword.getText().toString());
}
}
你不在'AlertDialog'的任何地方調用'show()'。 –