我正在尝试获取EditText
值,这是以程序化方式创建的。但是当onClick
函数运行代码中断时,它不起作用。
button.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
numberValue = (EditText) findViewById(R.id.number_picker_value);
Log.d("****2**", numberValue.getText().toString());
dialog.dismiss();
}
});
值和ID是从另一个类NumberPicker.java
设置的。
private void initValueEditText( Context context )
{
value = new Integer( 0 );
valueText = new EditText( context );
valueText.setId(R.id.number_picker_value); //ID set here
valueText.setTextSize(25);
...
//value set sooner, look in the link for full code.
}
可以在here找到NumberPicker.java的完整源代码。
R.id.number_picker_value
在XML文件中定义
<item type="id" name="number_picker_value" />
。
修改
我对“代码中断”的意思是我得到Force close dialog
。
EDIT2:
Logcat output.(这是你想要的吗?)
EDIT3:
顺便说一句,我从不打电话给NumberPicker.java。当我用这段代码加载XML文件时它会自动启动:
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout
xmlns:android = "http://schemas.android.com/apk/res/android"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content">
<!-- This seem to start NumberPicker.java, so I have no object to refer to. -->
<com.android.GissaSiffran.NumberPicker
android:id = "@+id/numberPickerDialog"
android:orientation = "horizontal"
android:layout_width = "fill_parent"
android:layout_height = "fill_parent"
android:gravity = "center">
</com.android.GissaSiffran.NumberPicker>
<!-- Canel / ok button -->
<Button
android:id = "@+id/cnfrm"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:textSize = "13dp"
android:textStyle = "italic"
android:text = "@string/cnfrmBtn"></Button>
</LinearLayout>
也许我在这里做错了?
当我运行dialog.setContentView(R.layout.pick_a_number_dialog); dialog.show();
时,XML加载并且数字选择器在对话框中,我可以选择数字。
但我从来没有用NumberPicker.java
开始NumberPicker np = new NumberPicker(getApplicationContext(), null));
也许我在这里做错了? (我是java的新手。)
顺便说一句,这是我的第一篇文章。 :)
答案 0 :(得分:0)
对于未来的参考者,我使用的是相同的NumberPicker.java。为了获得EditText的值,我在OnCreateView方法中创建了对EditText的引用,如下所示:
private EditText txtQty;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.dialog_numberpicker,container,false);
txtQty = (EditText) view.findViewById(idText);
return view;
}
然后在onClick方法中:
String newOnHand = txtQty.getText().toString();