2012-09-19 2 views
0

동일한 활동에서 webview 및 listview를 만들려고합니다. 여기 내 레이아웃 파일이다 :동일한 활동의 ​​webview 및 listview

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
android:background="@android:color/white" > 

<com.markupartist.android.widget.ActionBar 
    android:id="@+id/actionbar" 
    style="@style/ActionBar" /> 

<WebView 
    android:id="@+id/webView1" 
    android:layout_width="match_parent" 
    android:layout_height="210dp" /> 

<ListView 
    android:id="@+id/listtest" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 
</ListView> 

<TextView 
    android:id="@+id/tv_test2" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:padding="10dp" 
    android:textSize="16sp"/> 

여기의 내 행 레이아웃 :

public class Tab_Bike_Information_Activity extends Activity { 
WebView mWebView; 
TextView tv; 
private ListView mainListView; 
private ArrayAdapter<String> listAdapter; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.tessss); 

    final ActionBar actionBar = (ActionBar) findViewById(R.id.actionbar); 
    actionBar.setTitle(getString(R.string.app_name)); 

    int index = getIntent().getIntExtra("text", 0); 

    mWebView = (WebView) findViewById(R.id.webView1); 

    String temp = "<html><body>" + "<p align=\"justify\">" 
      + getString(R.string.xc_info + index) + "</p> " 
      + "</body></html>"; 
    mWebView.loadData(temp, "text/html", "utf-8"); 


    mainListView = (ListView) findViewById(android.R.id.list); 

    // Create and populate a List of planet names. 
    String[] planets = new String[] { "Mercury", "Venus", "Earth", "Mars", 
             "Jupiter", "Saturn", "Uranus", "Neptune"};  
    ArrayList<String> planetList = new ArrayList<String>(); 
    planetList.addAll(Arrays.asList(planets)); 

    // Create ArrayAdapter using the planet list. 
    listAdapter = new ArrayAdapter<String>(this, R.layout.tessss_row, planetList); 

    // Add more planets. If you passed a String[] instead of a List<String> 
    // into the ArrayAdapter constructor, you must not add more items. 
    // Otherwise an exception will occur. 
    listAdapter.add("Ceres"); 
    listAdapter.add("Pluto"); 
    listAdapter.add("Haumea"); 
    listAdapter.add("Makemake"); 
    listAdapter.add("Eris"); 


    tv = (TextView) findViewById(R.id.tv_test); 

} 

과 : 여기

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@android:color/white" 
android:orientation="vertical" > 

<com.markupartist.android.widget.ActionBar 
    android:id="@+id/actionbar" 
    style="@style/ActionBar" /> 

<TextView 
    android:id="@+id/tv_test" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:padding="10dp" 
    android:textSize="16sp" > 
</TextView> 

및 나의 활동입니다 여기 logcat가 :

09-19 20:04:04.659: E/AndroidRuntime(13951): FATAL EXCEPTION: main 
09-19 20:04:04.659: E/AndroidRuntime(13951): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.wilis.hellotabwidget/com.wilis.hellotabwidget.Tab_Bike_Information_Activity}: java.lang.NullPointerException 
09-19 20:04:04.659: E/AndroidRuntime(13951): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651) 
09-19 20:04:04.659: E/AndroidRuntime(13951): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) 
09-19 20:04:04.659: E/AndroidRuntime(13951): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
09-19 20:04:04.659: E/AndroidRuntime(13951): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935) 
09-19 20:04:04.659: E/AndroidRuntime(13951): at android.os.Handler.dispatchMessage(Handler.java:99) 
09-19 20:04:04.659: E/AndroidRuntime(13951): at android.os.Looper.loop(Looper.java:130) 
09-19 20:04:04.659: E/AndroidRuntime(13951): at android.app.ActivityThread.main(ActivityThread.java:3687) 
09-19 20:04:04.659: E/AndroidRuntime(13951): at java.lang.reflect.Method.invokeNative(Native Method) 
09-19 20:04:04.659: E/AndroidRuntime(13951): at java.lang.reflect.Method.invoke(Method.java:507) 
09-19 20:04:04.659: E/AndroidRuntime(13951): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) 
09-19 20:04:04.659: E/AndroidRuntime(13951): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) 
09-19 20:04:04.659: E/AndroidRuntime(13951): at dalvik.system.NativeStart.main(Native Method) 
09-19 20:04:04.659: E/AndroidRuntime(13951): Caused by: java.lang.NullPointerException 
09-19 20:04:04.659: E/AndroidRuntime(13951): at com.wilis.hellotabwidget.Tab_Bike_Information_Activity.onCreate(Tab_Bike_Information_Activity.java:75) 
09-19 20:04:04.659: E/AndroidRuntime(13951): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
09-19 20:04:04.659: E/AndroidRuntime(13951): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615) 
09-19 20:04:04.659: E/AndroidRuntime(13951): ... 11 more 

아무도 도와 드릴까요? 감사합니다

+1

줄 75에 NullPointer 예외가 있습니다. 어떤 줄입니까? – Thommy

+0

@Thommy'mainListView.setAdapter (listAdapter);'왜? –

+0

Se 내 대답은 – Thommy

답변

0

두 가지 문제점이 있습니다. 먼저 목록보기의 ID입니다. 변경

mainListView = (ListView) findViewById(android.R.id.list); 

mainListView = (ListView) findViewById(R.id.listtest); 

어쩌면 당신은 android.R에 대한 가져 오기를 삭제해야합니다. * 이클립스하게 변화를 인식 할 수 있습니다.

두 번째로 어댑터에 TextView가 지정되었습니다.

listAdapter = new ArrayAdapter<String>(this, R.layout.tessss_row, R.id.tv_test, planetList); 

-
변경

listAdapter = new ArrayAdapter<String>(this, R.layout.tessss_row, planetList); 

는 ArrayAdapter와 어떤 텍스트 뷰에서이 planetList의 내용을 작성해야 알 수 있도록합니다.

+0

ouh, 나는 너무 어리 석다. 정말 고마워. 정말 도움이된다. :) –

0

tv는 TextView : findViewById()를 참조해야합니다!

+0

입니다.'tv = (TextView) findViewById (R.id.tv_test);'상단에 textview를 선언했습니다. –

2

나는 몇 가지를 보지만 잘못된 것일 수 있습니다. 코드를보고 테스트하지 않았습니다.

클래스가 Activity 대신 ListActivity를 확장해야합니까?

mainListView = (ListView) findViewById(android.R.id.list); 

을하지만 XML의 목록보기가 다른 ID가 있습니다 :

다음 것은, 클래스에, 당신은있다

android:id="@+id/listtest" 

내가이 있어야한다고 생각을

android:id="@+id/android:list" 

또 하나는 TextView의 ID가 잘못되었습니다. 당신은 tv_test 대신 tv_test2

희망이 도움이 찾고 있습니다.

+0

감사합니다 @switchingBrains :) 정말 많이 도와주세요 –

+0

아무런 문제가 없습니다. 너무 거기에있다;) 당신은 정말로 당신의 신분이 거기에서 섞이는 것을 얻었다. 행운을 빈다. 재미있게 놀아 라. –

관련 문제