0

我是 Android 的新手。我喜欢通过点击 EditText 来加载布局 xml。该特定 xml 填充有带有文本的按钮。当用户按下其中一个按钮时,按钮上的文本将显示在 EditText 中。我有两个问题。

(1)EditText IDEditTxt = (EditText) findViewById(R.id.IDeditText);

在该行中,即使 IDeditText 在 R.id 中确定,IDEditTxt 始终为空。我尝试了所有可以从互联网上找到的方法,例如清理、删除 xml、重写 xml。我都试过了,但还是有问题。但是,可以出于其他目的读取 EditText 中的文本。我不明白为什么 IDEditTxt 是 walays null 并且可以读取 EditText 中的文本。

new AlertDialog.Builder(this).setTitle("New Tracker").setView(addView) .setPositiveButton("ADD", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { addWord((TextView) addView.findViewById(R.id.IDeditText)); } }).setNegativeButton("Cancel", null).show();

(2)如何通过点击EditText来实现加载布局xml。然后按钮上显示的文本将显示在该 EditText 中。

谢谢

4

1 回答 1

0

在该行中,IDEditTxt 始终为空,即使 IDeditText 在 R.id 内是确定的......我不明白为什么 IDEditTxt 是 walays 空,但可以读取 EditText 内的文本。

EditText存在于您的Layout文件中,但EditText您尝试声明和使用的对象是null直到您inflatelayout. 您需要inflatelayout一个,通过使用setContentView(R.layout.your_layout_file);inflater像在AlertDialog

(2)如何通过点击EditText来实现加载布局xml。然后按钮上显示的文本将显示在该 EditText 中。

通常最好不要像这样layouts在同一个中创建单独的。Activity您可能会遇到尝试使用View第一次Layout膨胀或效率问题的错误。你应该创建一个Layoutfor theActvity并将它用于整个事情,除非你有一个你不能的特定原因。您可以Activity在所需的操作发生时开始新的操作,也可以将其layout设置visibility为然后在操作发生后进行操作。希望这会有所帮助,并且通过一本书和教程的建议是一个非常好的主意。现在可能需要更多时间,但在您了解框架的运行方式后肯定会为您节省时间。Buttonsgonevisible

于 2013-03-11T16:22:54.680 回答