2012-02-22 6 views
0

Я начинаю писать простой программный интерфейс, и хотя я начал много раз много раз, я не могу сказать, что нарушает этот код до такой степени, что он даже не отображает Пользовательский интерфейс. Я должен что-то делать с представлениями, но я не могу сказать, что. Может ли кто-нибудь помочь?Fatal Exception at Startup

Это мой основной код вида деятельности (все есть, прямо сейчас)

package com.orbitbreak.musicbox; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.ViewGroup; 
import android.widget.ImageView; 

import com.orbitbreak.musicbox.R; 

public class MusicBoxActivity extends Activity { 

    public ViewGroup viewUpdate; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     // makes one image layout 
     ImageView singleButton = new ImageView(this); 
     singleButton.setImageResource(R.drawable.gridbuttonoff); 
     singleButton.setScaleType(ImageView.ScaleType.CENTER_INSIDE); 
     viewUpdate.addView(singleButton); 

     redrawView(getViewUpdate()); 

    } 

    public void redrawView(ViewGroup param){ 
     setViewUpdate(param); 
     setContentView(getViewUpdate()); 
    } 
    public ViewGroup getViewUpdate(){ 
     return this.viewUpdate; 
    } 
    public void setViewUpdate(ViewGroup param){ 
     this.viewUpdate = param; 
    } 

} 

и вот мой LogCat журнал

02-22 16:53:56.440: D/AndroidRuntime(625): Shutting down VM 
02-22 16:53:56.440: W/dalvikvm(625): threadid=1: thread exiting with uncaught exception  (group=0x40015560) 
02-22 16:53:56.460: E/AndroidRuntime(625): FATAL EXCEPTION: main 
02-22 16:53:56.460: E/AndroidRuntime(625): java.lang.RuntimeException: Unable to start  activity ComponentInfo{com.orbitbreak.musicbox/com.orbitbreak.musicbox.MusicBoxActivity}:  java.lang.NullPointerException 
02-22 16:53:56.460: E/AndroidRuntime(625): at  android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 
02-22 16:53:56.460: E/AndroidRuntime(625): at  android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
02-22 16:53:56.460: E/AndroidRuntime(625): at  android.app.ActivityThread.access$1500(ActivityThread.java:117) 
02-22 16:53:56.460: E/AndroidRuntime(625): at  android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
02-22 16:53:56.460: E/AndroidRuntime(625): at  android.os.Handler.dispatchMessage(Handler.java:99) 
02-22 16:53:56.460: E/AndroidRuntime(625): at android.os.Looper.loop(Looper.java:123) 
02-22 16:53:56.460: E/AndroidRuntime(625): at  android.app.ActivityThread.main(ActivityThread.java:3683) 
02-22 16:53:56.460: E/AndroidRuntime(625): at  java.lang.reflect.Method.invokeNative(Native Method) 
02-22 16:53:56.460: E/AndroidRuntime(625): at  java.lang.reflect.Method.invoke(Method.java:507) 
02-22 16:53:56.460: E/AndroidRuntime(625): at  com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
02-22 16:53:56.460: E/AndroidRuntime(625): at  com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
02-22 16:53:56.460: E/AndroidRuntime(625): at dalvik.system.NativeStart.main(Native Method) 
02-22 16:53:56.460: E/AndroidRuntime(625): Caused by: java.lang.NullPointerException 
02-22 16:53:56.460: E/AndroidRuntime(625): at  com.orbitbreak.musicbox.MusicBoxActivity.onCreate(MusicBoxActivity.java:25) 
02-22 16:53:56.460: E/AndroidRuntime(625): at  android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
02-22 16:53:56.460: E/AndroidRuntime(625): at  android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
02-22 16:53:56.460: E/AndroidRuntime(625): ... 11 more 

ответ

2

viewUpdate имеет нулевое значение, как вы планируете, чтобы раздуть, что Посмотреть? Предполагается, что это ваш корневой вид?

Вы должны действительно рассмотреть возможность заполнения вашего пользовательского интерфейса из xml. Это очень удобно и рекомендуется для Android.

EDIT

Я считаю, что это именно то, что вы хотите: GridView example

+0

Да, это должно быть мнение корень. Как создать экземпляр ViewGroup так, как я могу использовать .addView (View v) на нем? Я начал использовать XML, но для этого проекта я делаю сетку 16x16 кликабельных изображений для повторения, поэтому я подумал, что было бы намного проще создать экземпляр ImageViews в качестве элементов ImageView [] [] для обработки в отличие от наличия уникального идентификатора для каждого элемента xml. У вас есть какие-либо советы о том, как программно генерировать сетку заданной высоты/ширины в качестве элементов xml, где я могу ссылаться на каждый элемент с переменной для onClickListeners? –

+0

, если вы используете xml, вам не нужно вручную добавлять представления. Попробуй. Вы уже указали макет в xml в файле R.layout.main. В этом случае вы можете вставлять представления детей в группы просмотра. альтернативно, если вы настаиваете на их программном использовании, убедитесь, что вы поместили идентификатор в корневой вид вашего файла R.layout.main, а затем выполните findViewById в своей деятельности с этим идентификатором. Это даст вам представление, которое вы можете использовать в качестве родителя. Опять же, это НЕ рекомендуется. –

+0

Мне по-прежнему придется перерисовывать сетку с разными изображениями, поскольку я перебираю ее, хотя различные элементы изображения видят, что элементы массива ImageView [] [] намного проще для итерации над ними, не согласны ли вы? findViewById принимает целое число, я не видел, чтобы преобразовать индекс цикла в соответствующий идентификатор изображения xview для быстрого поиска. Можете ли вы дать мне примеры того, как создавать и обрабатывать представления/setContentView лучше программно? Или XML-решения для моих проблем? –