我很难让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()'。 –