获取编程设置EditText值

时间:2011-10-15 14:39:27

标签: android dialog android-edittext

编辑4:我做了自己的号码选择器,所以我不再需要帮助。

但我认为问题是我没有使用dialog.findViewById()......

我正在尝试获取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的新手。)

顺便说一句,这是我的第一篇文章。 :)

1 个答案:

答案 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();