2

また、チュートリアルhttp://mtmurdockblog.com/2011/10/17/navigation-bar-for-android/を使用してプログラムでカスタム ナビゲーション バーを作成しています。setContentView()ListView xml 用と Navigation bar.im 用に2つあるため、例外が発生するので、以下のコードを参考にしてください。

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 を一度しか使用していません。ll.addView(nb); setContentView(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 に答える
1

setContentView を 2 回呼び出すことは避けてください。その場合、最初のものは上書きされます。それが例外を取得している理由かもしれません。xml レイアウト ファイルを作成して、そこに必要なすべてのビューを定義してみてください。

于 2012-12-04T07:48:10.943 に答える
0

スーパークラスをどこで拡張しますActivityか? onCreate() は、オーバーライドできるこのクラスのメソッドですhttp://developer.android.com/reference/android/app/Activity.htmlを参照してください

于 2012-12-04T07:48:48.240 に答える