Еще один вопрос "Не могу сделать статическую ссылку ..." - PullRequest
1 голос
/ 24 ноября 2010

Я пытаюсь написать Activity, которая имеет несколько представлений, метод fillView (), который устанавливает представления (который не является статическим, потому что он должен использовать getContentResolver), и статический метод, который делает случайный выбор из курсора, а затемзапускает метод fillView ().

У меня были проблемы с этим из-за того, что fillView не был статическим, а pickRandom был статическим, поэтому я попытался инициализировать экземпляр класса, но теперь он вылетает на строке instance.fillView();

Пример кода ниже.Любая помощь будет оценена.Возможно, есть гораздо более простой способ выполнить то, что я пытаюсь сделать.

Спасибо, Джош

public class myView extends Activity implements OnClickListener {


@Override 
   public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.myView);

fillView();

    }


public void fillView(){

    //creates views, runs cursor and applies results to the view created

}

public static void pickRandom() {   


          // runs cursor, picks random entry, next I want to apply the result to 
          //  view, so I run...

        myView v = new myView();
        v.fillView();

        }

Ответы [ 2 ]

5 голосов
/ 24 ноября 2010

Создайте статическую переменную экземпляра и установите в oncreate:

private static myView instance;

oncreate ()

instance = this;

static pickrandom ()

instance.fillView();
0 голосов
/ 24 ноября 2010

в вашем pickRandom вы пытаетесь создать новый экземпляр вашего класса.Вместо этого вы должны сделать следующее:

this.fillView();

Я не вижу никакой цели, у вас есть статический pickRandom.

Если, тем не менее, вам это нужно по какой-то причине, вы можете передать ссылку на свое мнение следующим образом:

...