gpt4 book ai didi

java - Android:带有变量的 ShowDialog

转载 作者:行者123 更新时间:2023-11-30 03:48:10 26 4
gpt4 key购买 nike

您好,我正在研究 ShowDialog,我希望它显示一条包含 2 个局部变量的消息。出于这个原因,它说有一个错误,所以如果有显示这些变量的方法,我将不胜感激。这是我的代码,错误所在的行是这一行:

  .setMessage("The NIF is" +user +DNIWord  "-")

剩下的代码是这个:

protected Dialog onCreateDialog (int id){


switch (id) {
case DIALOG_ERROR_CANDIDATO:
return new AlertDialog.Builder(this)
.setIcon(R.drawable.ic_error)
.setTitle(R.string.error)
.setMessage("The NIF is" +user +DNIWord "-")
.setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
})

.create();
}

return null;


}

这2个变量是从这里获取的:

int user = Integer.parseInt(dniText.getText().toString());

public static String DNIWord(int user) {
return String.valueOf(user) + NIF_STRING_ASOCIATION.charAt(user % 23);
}

谢谢

编辑:

 package com.prueba.inicio;


import com.prueba.R;
import com.prueba.R.drawable;
import com.prueba.R.id;
import com.prueba.R.layout;
import com.prueba.R.string;
import com.prueba.inicio.Autorizacion;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.content.DialogInterface;
import android.content.Intent;
import android.text.style.BackgroundColorSpan;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;



public class Ident extends Activity {
private static final int DIALOG_ERROR_CANDIDATO= 0;
public static final String NIF_STRING_ASOCIATION = "TRWAGMYFPDXBNJZSQVHLCKE";


public static String DNIWord(int user) {
return String.valueOf(user) + NIF_STRING_ASOCIATION.charAt(user % 23);
}

public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
setContentView(R.layout.identificacion);
Button bSiguiente = (Button) findViewById(R.id.btn_siguiente);
final EditText dniText = (EditText) findViewById(R.id.dni_candidato);

bSiguiente.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {

int user = Integer.parseInt(dniText.getText().toString());


String longitud = dniText.getText().toString();


if(user==8){
Intent i = new Intent(Ident.this,Autorizacion.class);
startActivity(i);
}
else{
showDialog(DIALOG_ERROR_CANDIDATO);
}


}


});

}
protected Dialog onCreateDialog (int id){

switch (id) {
case DIALOG_ERROR_CANDIDATO:
return new AlertDialog.Builder(this)
.setIcon(R.drawable.ic_error)
.setTitle(R.string.error)
.setMessage("The NIF is" +user +DNIWord (user)+ "-")
.setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
})

.create();
}

return null;


}
}

最佳答案

user 是一个类变量,DNIWord 只是一个方法。修改调用,使其像这样:

.setMessage("The NIF is" +user +DNIWord (user)+  "-")

DNIWord 虽然使用带阴影的 user 变量,所以

("The NIF is" +user +DNIWord (user)+  "-")

可以缩短为

("The NIF is" + DNIWord (user)+  "-")

但是,由于 user 似乎是类范围的,您尝试获取 dniText 的值,这似乎是一个 EditText/TextView很有可能您在实际运行您的应用程序时也会得到一个NullPointerException。将用户的分配移动到内部等某个地方onCreateDialog()

编辑 user 不是类作用域,而是局部于 onCreate() 局部变量,顾名思义,局部于封闭方法。

将user移到onCreate()之外,然后在onCreate中取出int用户,写成user即可。

int user = 0; //class instance variable
public void onCreate(Bundle icicle)
{

//...
try{
user = Integer.parseInt(dniText.getText().toString()); //no "int", just user
}
catch (NumberFormatException e)
{
}
}

然后在您的 onCreateDialog() 方法中,您应该能够访问 user

关于java - Android:带有变量的 ShowDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14615728/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com