Возврат значений из пользовательского представления - PullRequest
0 голосов
/ 27 июня 2011

Я создал класс ShowWeight, расширяющий LinearLayout, который имеет два пользовательских представления в качестве внутренних классов. Я использую этот класс с помощью тега XML в main.xml:

<org.test.ShowWeight  android:id="@+id/sw"..................../>

В классе ShowWeight есть две открытые переменные, чьи изменяемые значения необходимо зафиксировать в основном действии, которое использует main.xml в качестве представления.

Как мне это сделать? Я попробовал это в основной деятельности:

ShowWeight sw=(ShowWeight)this.findViewById(R.id.sw);
Log.d("test",sw.getContentDescription().toString());

и это в классе showWeight:

this.setContentDescription(/*required value */);

Это привело к NullPointerException.

Буду признателен за некоторые предложения (база данных, статические переменные, а не опция)

Обновление:

К сожалению, мне не разрешено публиковать какой-либо код, я прошу прощения, если мне покажется расплывчатым, тем не менее я уверен, что класс ShowWeight не изменил ничего, что могло бы вызвать проблему.

Класс ShowWeight, который я добавил в представление main.xml с помощью тега XML, выглядит нормально и работает правильно.

Когда я использую ShowWeight sw=(ShowWeight)this.findViewById(R.id.sw); в Основном занятии, а затем тост или распечатываю ShowWeight, я получаю «ноль». Также setContentDescription(),getContentDescription() не должно выдавать ошибки, потому что я дал стандартное contentDescription в теге XML для ShowWeight.

1 Ответ

0 голосов
/ 27 июня 2011

Размещение вашего класса ShowWeight поможет нам больше.Предполагая, что у вас есть такой класс.

public class ShowWeight extends LinearLayout {

    private Object myObject; 
    public ShowWeight(Context context, AttributeSet attrs)
    {
        super(context, attrs);
        LayoutInflater.from(context).inflate(R.layout.header, this);
    }
    public Object getMyObject()
    {
        return myObject;
    }    
}

и в вас MainActivity.java

ShowWeight sw=(ShowWeight)this.findViewById(R.id.sw);
sw.getMyObject();
...