2

我正在创建一个自定义 ListView,其中我的 ListView xml 是关键字列表。我还使用教程http://mtmurdockblog.com/2011/10/17/navigation-bar-for-android/以编程方式创建自定义导航栏。因为 ListView xml 有两个setContentView(),Navigation bar.im 有两个异常,你们可以帮我看看下面的代码。

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); 

错误日志猫:-

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)
4

3 回答 3

1

我说避免两次调用 setContentView。如果你这样做,第一个将被覆盖。这可能是您遇到异常的原因。尝试创建一个 xml 布局文件并在那里定义您需要的所有视图。

于 2012-12-04T07:48:10.943 回答
1

再次查看教程,他只使用了一次 setContentView。ll.addView(nb); 设置内容视图(ll);您应该在 listView 中加载关键字,然后使用 li.addView(navigationBar) 在 listView 中添加导航栏;

或者

您可以使用 XML 进行导航,然后可以在该导航栏下方添加一个 listView。之后以编程方式在列表视图中加载关键字。我已经做出了这样的看法,检查一下

<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>

于 2012-12-04T08:03:27.410 回答
0

你在哪里扩展超类Activity?onCreate() 是此类中的一个方法,您可以覆盖它,请参阅http://developer.android.com/reference/android/app/Activity.html

于 2012-12-04T07:48:48.240 回答