Я думаю, что следующая проблема является основной.
Я использую этот сборщик номеров, поскольку Android SDK не предоставляет ни одного: http://www.quietlycoding.com/?p=5&cpage=1#comment-10645
Я включил его в раздутый алерты.Вот раздутая раскладка:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<com.example.NumberPicker
android:padding="10dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
Я добавил кнопку в alerttdialog.Если щелкнуть по нему, я хочу получить текущее значение средства выбора номера.
Класс выбора чисел предоставляет функцию:
public static int getCurrent() {
return mCurrent;
}
Проблема в том, что я не знаю, как его вызвать.У меня нет объекта класса.Если я вызываю его через com.example.NumberPicker.getCurrent (), я должен объявить его статическим, и это имеет некоторые негативные побочные эффекты.
Кто-то знает, как я получаю объект класса выбора в порядкевызвать функцию getCurrent ()?
Я думаю, что просто создать новый объект - неправильный путь, потому что я хочу вызывать функцию из запущенного объекта в моем алердиалоге.
Редактировать: Как я и ожидал:
NumberPicker np = new NumberPicker(MainScreen.this);
Log.v("TEST", "" + np.getCurrent());
Это всегда дает мне 0
Редактировать 2: Я добавил идентификатор Android:
<com.example.NumberPicker
android:id="@+id/numberPicker"
android:padding="10dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
Я выполняю следующий код:
LayoutInflater factory = LayoutInflater.from(this);
final View textEntryView = factory.inflate(
R.layout.backfall_layout, null);
new AlertDialog.Builder(MainScreen.this)
.setTitle(this.getString(R.string.relapse))
.setView(textEntryView)
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int whichButton) {
NumberPicker np = (NumberPicker) findViewById(R.id.numberPicker);
Log.v("TEST", "" + np.getCurrent());
--
Но теперь мое приложение зависает после нажатия кнопки ..
Редактировать 3:
Решено: мне нужно позвонить
NumberPicker np = (NumberPicker) textEntryView.findViewById(R.id.cigarettesPicker);
np.setCurrent(1);