user578386
user578386

Reputation: 1061

Null Pointer Exception when trying to add two setContentView in android

I m creating a custom ListView where my ListView xml is keywordList .also i m creating custom navigation bar programatically using the tutorial http://mtmurdockblog.com/2011/10/17/navigation-bar-for-android/. since there is two setContentView() one for ListView xml and another for the Navigation bar.i m getting exceptions could u guys help me out below is the code.

public class KeywordListView extends Activity{
public LinkedList<String> mListItems;
KeyWordAdapter keywordAdapter;
ProgressDialog  progressDialog=null;
Runnable updateRunnable;    
public static String email;
Button btnSettings;
Button btnAddKeyWord;
static ListView lv;
public final Handler myHandler = new Handler();
static ArrayAdapter<String> arrayAdapter;

public static List<KeyWordDetails>responseArray;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.keywordlist);
LinearLayout ll = new LinearLayout(this);

NavigationBar nb = new NavigationBar(this);
nb.setLeftBarButton("Back");
nb.setRightBarButton("Menu");
nb.setBarTitle("The Bar Title");
NavigationBar.NavigationBarListener nbl = new NavigationBar.NavigationBarListener() {
    @Override
    public void OnNavigationButtonClick(int which) {
        // TODO Auto-generated method stub  
    }
};
nb.setNavigationBarListener(nbl);
ll.addView(nb);
setContentView(ll); 

Error Logcat:-

12-04 13:17:49.780: E/AndroidRuntime(1533): FATAL EXCEPTION: main

   12-04 13:17:49.780: E/AndroidRuntime(1533): java.lang.RuntimeException: Unable to start  
   activity ComponentInfo{com.example.shortcode/com.example.shortcode.KeywordListView}:   java.lang.NullPointerException
12-04 13:17:49.780: E/AndroidRuntime(1533):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
12-04 13:17:49.780: E/AndroidRuntime(1533):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
12-04 13:17:49.780: E/AndroidRuntime(1533):     at android.app.ActivityThread.access$1500(ActivityThread.java:117)
12-04 13:17:49.780: E/AndroidRuntime(1533):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
12-04 13:17:49.780: E/AndroidRuntime(1533):     at android.os.Handler.dispatchMessage(Handler.java:99)
12-04 13:17:49.780: E/AndroidRuntime(1533):     at android.os.Looper.loop(Looper.java:123)
12-04 13:17:49.780: E/AndroidRuntime(1533):     at android.app.ActivityThread.main(ActivityThread.java:3683)
12-04 13:17:49.780: E/AndroidRuntime(1533):     at java.lang.reflect.Method.invokeNative(Native Method)
12-04 13:17:49.780: E/AndroidRuntime(1533):     at java.lang.reflect.Method.invoke(Method.java:507)
12-04 13:17:49.780: E/AndroidRuntime(1533):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
12-04 13:17:49.780: E/AndroidRuntime(1533):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
12-04 13:17:49.780: E/AndroidRuntime(1533):     at dalvik.system.NativeStart.main(Native Method)
12-04 13:17:49.780: E/AndroidRuntime(1533): Caused by: java.lang.NullPointerException
12-04 13:17:49.780: E/AndroidRuntime(1533):     at com.example.shortcode.KeywordListView.onCreate(KeywordListView.java:111)
12-04 13:17:49.780: E/AndroidRuntime(1533):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
12-04 13:17:49.780: E/AndroidRuntime(1533):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)

Upvotes: 2

Views: 693

Answers (3)

Farooq
Farooq

Reputation: 426

check tutorial again, he has used setContentView only once. ll.addView(nb); setContentView(ll); you should load keywords in listView, then add navigation bar in listView using li.addView(navigationBar);

OR

you can make navigation using XML and then can add a listView below that naviation bar. After that load keywords in listview programmatically. I have made such view, check this

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:weightSum="100" >

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="9"
                    android:background="@drawable/header" >

        <ImageView
            android:id="@+id/imageViewHome"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_gravity="center"
            android:layout_marginBottom="5dp"
            android:layout_marginLeft="5dp"
            android:layout_marginTop="5dp"
            android:scaleType="fitCenter"
            android:src="@drawable/home" />

        <TextView
            android:id="@+id/textViewTitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:layout_gravity="center_vertical|center_horizontal"
            android:text="Groups"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textColor="@android:color/white"
            android:textStyle="bold" />

        <ImageView
            android:id="@+id/imageViewCreate"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginRight="5dp"
            android:layout_toLeftOf="@+id/imageViewDelete"
            android:src="@drawable/add" />

        <ImageView
            android:id="@+id/imageViewDelete"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true"
            android:layout_gravity="center_vertical"
            android:layout_marginRight="5dp"
            android:scaleType="fitXY"
            android:src="@drawable/delete" />
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="9"
        android:background="@drawable/bg_gradient_grey" >

        <EditText
            android:id="@+id/editTextSearch"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_marginBottom="5dp"
            android:layout_marginLeft="15dp"
            android:layout_marginRight="15dp"
            android:layout_marginTop="5dp"
            android:background="@drawable/rounded_edges"
            android:ellipsize="end"
            android:ems="15"
            android:hint="Search"
            android:singleLine="true"
            android:textSize="15dp" >

            <requestFocus />
        </EditText>

        <ImageButton
            android:id="@+id/imageButtonSearch"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:layout_alignWithParentIfMissing="true"
            android:layout_centerInParent="false"
            android:layout_centerVertical="true"
            android:layout_gravity="center"
            android:layout_marginRight="25dp"
            android:background="@null"
            android:src="@drawable/ic_action_search" />
    </RelativeLayout>

    <ListView
        android:id="@+id/groupsList"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="82"
        android:background="@android:color/white"
        android:cacheColorHint="#00000000" >
    </ListView>
</LinearLayout>

Upvotes: 1

Tobias Moe Thorstensen
Tobias Moe Thorstensen

Reputation: 8981

Where do you extends the super class Activity? onCreate() is a method in this class which you can override please see http://developer.android.com/reference/android/app/Activity.html

Upvotes: 0

Arda Yigithan Orhan
Arda Yigithan Orhan

Reputation: 1052

I say avoid calling setContentView twice. If you do, first one will be overwritten. That might be the reason why you're getting exceptions. Try creating an xml layout file and define all of the views you need there.

Upvotes: 1

Related Questions