1

Everything seems to work, up to the point when I launched and decide to enter my name and press the button to start the game, it seems values are not being passed into the other activity, can anyone help me with this issue, doing this on eclipse luna fyi.

MainActivity:

public class MainActivity extends Activity {
    private Button GameButton;
    private EditText TextBox;
    private String UserName;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextBox = (EditText)findViewById(R.id.enterName);
        GameButton = (Button)findViewById(R.id.gameStart);
        GameButton.setOnClickListener(new View.OnClickListener() {

            @Override
        public void onClick(View v) {
                UserName = TextBox.getText().toString();
                Intent g = new Intent(getBaseContext(),GameActivity.class); 
                g.putExtra(GameActivity.PlayerName, UserName);
                startActivity(g);

            }
        });


    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

GameActivity:

package com.example.battleships;


public class GameActivity extends Activity {
    private ImageView mMyImage1, mMyImage2, mMyImage3, mMyImage4, mMyImage5,
            mMyImage6, mMyImage7, mMyImage8, mMyImage9, mMyImage10, mMyImage11,
            mMyImage12, mMyImage13, mMyImage14, mMyImage15, mMyImage16,
            mMyImage17, mMyImage18, mMyImage19, mMyImage20, mMyImage21,
            mMyImage22, mMyImage23, mMyImage24, mMyImage25;
    public static final String PlayerName = "com.example.battleships.Name";

    public ImageView[] mYimage = { mMyImage1, mMyImage2, mMyImage3, mMyImage4,
            mMyImage5, mMyImage6, mMyImage7, mMyImage8, mMyImage9, mMyImage10,
            mMyImage11, mMyImage12, mMyImage13, mMyImage14, mMyImage15,
            mMyImage16, mMyImage17, mMyImage18, mMyImage19, mMyImage20,
            mMyImage21, mMyImage22, mMyImage23, mMyImage24, mMyImage25 };

    private int[] nums = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
            1, 1, 1, 1, 1, 1, 1, 1 };
    private int myCount = 0, Count = 8;
    private String GamerName;
    private TextView myText;
    private Drawable bomb, clown;

    Drawable startImage;

    @Override
    // Method
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_game);
        GamerName = getIntent().getStringExtra(PlayerName);
        myText = (TextView)findViewById(R.id.textView1);
        myText.setText("Hi, " + GamerName + "! You have" + Count + "attempts.");
        //..........

Here is the layout xml for GameActivity:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.battleships.GameActivity"
tools:ignore="UselessParent" >

<GridLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="23dp"
android:columnCount="5"
android:rowCount="5" 
>

<ImageView
android:id="@+id/ImageView1"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_column="0"
android:layout_gravity="start|top"
android:layout_row="0"
android:onClick="action"
android:contentDescription="@string/desc" />

<ImageView
android:id="@+id/imageView2"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_column="1"
android:layout_gravity="start|top"
android:layout_row="0"
android:onClick="action"

android:contentDescription="@string/desc" />

<ImageView
android:id="@+id/imageView3"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_column="2"
android:layout_gravity="start|top"
android:layout_row="0"
android:onClick="action"
android:contentDescription="@string/desc" />

<ImageView
android:id="@+id/imageView4"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_column="3"
android:layout_gravity="start|top"
android:layout_row="0"
android:onClick="action"
android:contentDescription="@string/desc"/>

<ImageView
android:id="@+id/imageView5"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_column="4"
android:layout_gravity="start|top"
android:layout_row="0"
android:onClick="action"
android:contentDescription="@string/desc" />

<ImageView
android:id="@+id/imageView6"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_column="0"
android:layout_gravity="start|top"
android:layout_row="1"
android:onClick="action"
android:contentDescription="@string/desc" />

<ImageView
android:id="@+id/imageView7"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_column="1"
android:layout_gravity="start|top"
android:layout_row="1"
android:onClick="action"
android:contentDescription="@string/desc" />

<ImageView
android:id="@+id/imageView8"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_column="2"
android:layout_gravity="start|top"
android:layout_row="1"
android:onClick="action"
android:contentDescription="@string/desc" />

<ImageView
android:id="@+id/imageView9"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_column="3"
android:layout_gravity="start|top"
android:layout_row="1"
android:onClick="action"
android:contentDescription="@string/desc" />

<ImageView
android:id="@+id/imageView10"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_column="4"
android:layout_gravity="start|top"
android:layout_row="1"
android:onClick="action"
android:contentDescription="@string/desc" />

<ImageView
android:id="@+id/imageView11"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_column="0"
android:layout_gravity="start|top"
android:layout_row="2"
android:onClick="action"
android:contentDescription="@string/desc" />

<ImageView
android:id="@+id/imageView12"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_column="1"
android:layout_gravity="start|top"
android:layout_row="2"
android:onClick="action"
android:contentDescription="@string/desc" />

<ImageView
android:id="@+id/imageView13"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_column="2"
android:layout_gravity="start|top"
android:layout_row="2"
android:onClick="action"
android:contentDescription="@string/desc" />

<ImageView
android:id="@+id/imageView14"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_column="3"
android:layout_gravity="start|top"
android:layout_row="2"
android:onClick="action"
android:contentDescription="@string/desc" />

<ImageView
android:id="@+id/imageView15"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_column="4"
android:layout_gravity="start|top"
android:layout_row="2"
android:onClick="action"
android:contentDescription="@string/desc" />

<ImageView
android:id="@+id/imageView16"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_column="0"
android:layout_gravity="start|top"
android:layout_row="3"
android:onClick="action"
android:contentDescription="@string/desc" />

<ImageView
android:id="@+id/imageView17"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_column="1"
android:layout_gravity="start|top"
android:layout_row="3"
android:onClick="action"
android:contentDescription="@string/desc" />

<ImageView
android:id="@+id/imageView18"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_column="2"
android:layout_gravity="start|top"
android:layout_row="3"
android:onClick="action"
android:contentDescription="@string/desc" />

<ImageView
android:id="@+id/imageView19"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_column="3"
android:layout_gravity="start|top"
android:layout_row="3"
android:onClick="action"
android:contentDescription="@string/desc" />

<ImageView
android:id="@+id/imageView20"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_column="4"
android:layout_gravity="start|top"
android:layout_row="3"
android:onClick="action"
android:contentDescription="@string/desc" />

<ImageView
android:id="@+id/imageView21"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_column="0"
android:layout_gravity="start|top"
android:layout_row="4"
android:onClick="action"
android:contentDescription="@string/desc" />

<ImageView
android:id="@+id/imageView22"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_column="1"
android:layout_gravity="start|top"
android:layout_row="4"
android:onClick="action"
android:contentDescription="@string/desc" />

<ImageView
android:id="@+id/imageView23"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_column="2"
android:layout_gravity="start|top"
android:layout_row="4"
android:onClick="action"
android:contentDescription="@string/desc" />

<ImageView
android:id="@+id/imageView24"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_column="3"
android:layout_gravity="start|top"
android:layout_row="4"
android:onClick="action"
android:contentDescription="@string/desc" />

<ImageView
android:id="@+id/imageView25"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_column="4"
android:layout_gravity="start|top"
android:layout_row="4"
android:onClick="action"
android:contentDescription="@string/desc" />

</GridLayout>

</RelativeLayout>

Here is the stack trace:

05-03 17:05:18.282: E/AndroidRuntime(15872): FATAL EXCEPTION: main
05-03 17:05:18.282: E/AndroidRuntime(15872): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.battleships/com.example.battleships.GameActivity}: java.lang.NullPointerException
05-03 17:05:18.282: E/AndroidRuntime(15872): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2261)
05-03 17:05:18.282: E/AndroidRuntime(15872): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2311)
05-03 17:05:18.282: E/AndroidRuntime(15872): at android.app.ActivityThread.access$600(ActivityThread.java:149)
05-03 17:05:18.282: E/AndroidRuntime(15872): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1293)
05-03 17:05:18.282: E/AndroidRuntime(15872): at android.os.Handler.dispatchMessage(Handler.java:99)
05-03 17:05:18.282: E/AndroidRuntime(15872): at android.os.Looper.loop(Looper.java:137)
05-03 17:05:18.282: E/AndroidRuntime(15872): at android.app.ActivityThread.main(ActivityThread.java:5214)
05-03 17:05:18.282: E/AndroidRuntime(15872): at java.lang.reflect.Method.invokeNative(Native Method)
05-03 17:05:18.282: E/AndroidRuntime(15872): at java.lang.reflect.Method.invoke(Method.java:525)
05-03 17:05:18.282: E/AndroidRuntime(15872): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
05-03 17:05:18.282: E/AndroidRuntime(15872): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
05-03 17:05:18.282: E/AndroidRuntime(15872): at dalvik.system.NativeStart.main(Native Method)
05-03 17:05:18.282: E/AndroidRuntime(15872): Caused by: java.lang.NullPointerException
05-03 17:05:18.282: E/AndroidRuntime(15872): at com.example.battleships.GameActivity.onCreate(GameActivity.java:56)
05-03 17:05:18.282: E/AndroidRuntime(15872): at android.app.Activity.performCreate(Activity.java:5133)
05-03 17:05:18.282: E/AndroidRuntime(15872): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
05-03 17:05:18.282: E/AndroidRuntime(15872): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2225)
05-03 17:05:18.282: E/AndroidRuntime(15872): ... 11 mo

re

Daniel Nugent
  • 43,104
  • 15
  • 109
  • 137

2 Answers2

0

You could use SharedPreferences to do it. Using SharedPreferences is an easy way to store and retrieve primitives or strings throughout classes and have them persist between sessions.

To use them, you need to either make a SharedPreferences.Editor (for adding values) or a SharedPreferences object (for retrieving values). The import statements for these objects would be:

import android.content.SharedPreferences;

or

import android.content.SharedPreferences.Editor;

To set values, use this code:

SharedPreferences.Editor editor = getSharedPreferences("preferences (or whatever you want)", MODE_PRIVATE).edit();
editor.putString("username", UserName);
editor.commit();

To retrieve values from any other class:

SharedPreferences preferences = getSharedPreferences("preferences (or whatever you want)", MODE_PRIVATE);
GamerName = preferences.getString("username", "Value to put in case there is an error");

If you don't want the values to persist between sessions, simply put this block of code in your MainActivity in the onCreate method:

SharedPreferences.Editor resetter = getSharedPreferences("preferences (or whatever you want)", MODE_PRIVATE);
resetter.remove("username");
resetter.commit();
0

Looks like you just forgot to put textView1 in your activity_game.xml file.

Just add the TextView to your xml file, and that should get rid of the NullPointerException that you're getting.

Put the TextView outside of the GridView:

<TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <GridLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="23dp"
        android:columnCount="5"
        android:rowCount="5"
        >
Daniel Nugent
  • 43,104
  • 15
  • 109
  • 137