2012-07-26 55 views
0

我正在使用一個我正在經歷的android編程書籍的例子。這個練習的要點是當我點擊「關於」按鈕時,一個新的活動應該開始並顯示一些文本。出於某種原因,即使在我的IDE中的圖形佈局中顯示文本,文本也不會顯示出來。我使用手機作爲模擬器,手機運行的是Android 4.0.3。我正在使用eclipse。這裏是我的代碼:爲什麼我的TextView不能正確顯示它的字符串?

主要活動:

package org.example.sodoku; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 

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

     View continueButton= findViewById(R.id.continue_button); 
     continueButton.setOnClickListener(this); 
     View newButton= findViewById(R.id.new_button); 
     newButton.setOnClickListener(this); 
     View aboutButton= findViewById(R.id.about_button); 
     aboutButton.setOnClickListener(this); 
     View exitButton= findViewById(R.id.exit_button); 
     exitButton.setOnClickListener(this); 
    } 

    public void onClick(View v) { 
     // TODO Auto-generated method stub 

     switch (v.getId()){ 
     case R.id.about_button: 
      Intent i = new Intent(this, About.class); 
      startActivity(i); 
      break; 
     } 

    } 
} 

主要XML:

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@color/background" 
    android:gravity="center" 
    android:padding="35dip"> 
    <TextView 
     android:text="@string/main_title" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_gravity="center" 
     android:layout_marginBottom="20dip" 
     android:textSize="24.5sp" /> 
    <TableLayout 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_gravity="center" 
     android:stretchColumns="*"> 
     <TableRow> 
     <Button 
      android:id="@+id/continue_button" 
      android:text="@string/continue_label" /> 
     <Button 
      android:id="@+id/new_button" 
      android:text="@string/new_game_label" /> 
     </TableRow> 
     <TableRow> 
     <Button 
      android:id="@+id/about_button" 
      android:text="@string/about_label" /> 
     <Button 
      android:id="@+id/exit_button" 
      android:text="@string/exit_label" /> 
     </TableRow> 
    </TableLayout> 
</LinearLayout> 

關於類:

package org.example.sodoku; 

import android.app.Activity; 
import android.os.Bundle; 


public class About extends Activity { 
    protected void OnCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.about); 





    } 

} 

有關XML:

<?xml version="1.0" encoding="utf-8"?> 

<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:padding="10dip"> 


    <TextView 
     android:id="@+id/about_content" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/about_text" > 
</TextView> 


    </ScrollView> 

[編輯]忘了字符串的XML和清單:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

    <string name="hello">Hello World, Sudoku!</string> 
    <string name="app_name">Sudoku</string> 
    <string name="main_title">Android Sodoku</string> 
    <string name="continue_label">Continue</string> 
    <string name="new_game_label">New Game</string> 
    <string name="about_label">About</string> 
    <color name="background">#3500ffff</color> 
    <string name="exit_label">Exit</string> 
    <string name="about_title">About Android Sudoku</string> 
    <string name="about_text">fuck your ethnicity</string> 
</resources> 

清單:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="org.example.sodoku" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk android:minSdkVersion="10" /> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <activity 
      android:name=".Sudoku" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name=".About" 
      android:label="@string/about_title"> 
     </activity> 
    </application> 

</manifest> 

任何幫助將不勝感激,謝謝。

+1

什麼是字符串「about_text」的值(我認爲是在你的res/values/strings.xml中)? – matt5784 2012-07-26 22:35:50

+0

請注意'Amount.xml'中的大寫'A' [如果這是您在項目中命名的方式]。你的java代碼有'amount.xml' – Nerd 2012-07-26 22:44:43

+0

你是否在清單文件中添加了About.class? LogCat中是否有任何錯誤? – cliff2310 2012-07-26 22:52:31

回答

6

您已在關於活動的拼寫錯誤onCreate()方法(比較OnCreate()onCreate()),所以你不實際覆蓋基類的方法。用這個替換你的onCreate:

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.about); 
} 
1

它可以幫助你。使用這個作爲about.xml。

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/scroller" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:fillViewport="true" > 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center_horizontal" 
     android:orientation="vertical" > 

    <TextView 
     android:id="@+id/about_content" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/about_text" > 
    </TextView> 

    </LinearLayout> 

</ScrollView> 
+0

將它放入LinearLayout會有什麼不同? ScrollView不能自己顯示TextView嗎? (誠​​實的問題) – matt5784 2012-07-26 22:53:17

+0

@ matt5784應該沒有區別AFAIK – FoamyGuy 2012-07-26 22:55:27

相關問題