recheej
recheej

Reputation: 149

Why isn't my TextView displaying its string properly?

I'm using an example out of the android programming book I'm going through. The point of this exercise is that when I click the "about" button, a new activity should start and display some text. For some reason that text is not showing up even though the text shows up in the graphical layout in my IDE. I'm using my phone as the emulator and my phone is running Android 4.0.3. I'm using eclipse. Here's my code:

Main activity:

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

    }
}

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

About Class:

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





    }

}

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>

[EDIT] Forgot about strings xml and manifest:

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

Manifest:

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

Any help would be much appreciated, thank you.

Upvotes: 0

Views: 200

Answers (2)

Pavel Dudka
Pavel Dudka

Reputation: 20934

You have misspelled onCreate() method in your About activity (compare OnCreate()and onCreate()), so you don't actually override base class method. Replace your onCreate with this one:

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

Upvotes: 6

Ali
Ali

Reputation: 9994

It may help you. use this one as 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>

Upvotes: 1

Related Questions