Получить программный набор значений EditText - PullRequest
0 голосов
/ 15 октября 2011

Редактировать 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();
    }
 });

Значение и идентификатор устанавливаются из другого класса, 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.
}

Полный исходный код NumberPicker.java можно найти здесь здесь .

R.id.number_picker_value определен в XML-файле с <item type="id" name="number_picker_value" />.

РЕДАКТИРОВАТЬ:

Что я имею в виду с "кодовые разрывы" , что я получаю Force close dialog.

EDIT2:

Выход Logcat. (Это то, что вам нужно?)

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 голосов
/ 14 октября 2012

Для будущих справочников я использую тот же NumberPicker.java, который я бы предположил. Чтобы получить значение EditText, я создал ссылку на EditText в методе OnCreateView следующим образом:

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();
...