Daniel, Thank you for your kindly recommandation.
Anyway, I've find what's the problem there and solved. Thank you very much. HK On Thu, May 24, 2012 at 5:29 PM, Daniel Drozdzewski < [email protected]> wrote: > HK, > > I am sorry you feel this way - and don't worry, you have not disturbed me. > > I think that you would be much better off, learning Java first, > outside of Android or any other platform. > > Simply start some tutorial, going through nuances of Java. Problems > you are having are very easy to fix, once you know some basics. > > The further you go down the Android + Java route as a complete newbie, > the more frustrated you will become trying to understand cryptic > errors (some resulting from misuse of Java, some from the platform). > > Daniel > > > > > > > > On 24 May 2012 07:59, HK Tsang <[email protected]> wrote: > > Yes you are right. Acturally I'm learning both together right now. I just > > can learn it by my-self and find some exsample to study on web. No one > can > > teach me arround me. Therefore I just can ask something that I don't > > understand in here. I know that my knowledge is too a little. But I hope > > someone can solve me the problems that I can't understand. > > > > If you feel my question is too stupid. I'm sorry for disturbing you. > > > > On Thu, May 24, 2012 at 2:07 PM, Daniel Drozdzewski > > <[email protected]> wrote: > >> > >> oh dear, > >> > >> i suggest learning java first. > >> > >> D. > >> > >> > >> On Thursday, 24 May 2012, HK Tsang <[email protected]> wrote: > >> > I've passed the code when I add player = new MyPlayer() in onCreate. > but > >> > next step, I change it to array: > >> > > >> > MyPlayer[] players; > >> > > >> > . > >> > . > >> > . > >> > . > >> > onCreate.... > >> > players = new MyPlayer[4]; > >> > > >> > > >> > then it also NPE. why it pass when I use single player but use array > do > >> > not pass? > >> > > >> > == full code in main activity==== > >> > package hktsang56.android.mjhelper; > >> > import android.app.Activity; > >> > import android.os.Bundle; > >> > import android.view.View; > >> > import android.widget.Button; > >> > import android.widget.EditText; > >> > import android.widget.TextView; > >> > public class name_input extends Activity { > >> > final static int NUM_PLAYER = 4; > >> > private MyPlayer[] players; > >> > MyPlayer player; > >> > MarkSetting markSetting; > >> > private EditText[] namesET; > >> > Button bt[]; > >> > private TextView tv; > >> > int[] names = new int[]{ > >> > R.id.et_p1, > >> > R.id.et_p2, > >> > R.id.et_p3, > >> > R.id.et_p4 > >> > }; > >> > int[] btIds = new int[]{ > >> > R.id.but_sendName, > >> > R.id.but_clearName > >> > }; > >> > > >> > @Override > >> > protected void onCreate(Bundle savedInstanceState) { > >> > // TODO Auto-generated method stub > >> > super.onCreate(savedInstanceState); > >> > setContentView(R.layout.player_input); > >> > players = new MyPlayer[NUM_PLAYER]; > >> > namesET = new EditText[NUM_PLAYER]; > >> > bt = new Button[btIds.length]; > >> > player = new MyPlayer(); > >> > tv = (TextView) findViewById(R.id.tv_monitor); > >> > tv.setText("onCreate"); > >> > initButIds(); > >> > } > >> > private void initButIds(){ > >> > for (int i=0; i<btIds.length; i++){ > >> > bt[i] = (Button) findViewById(btIds[i]); > >> > bt[i].setOnClickListener(myClickListener); > >> > tv.setText("initButIds"); > >> > > >> > } > >> > } > >> > private View.OnClickListener myClickListener = new > >> > View.OnClickListener() { > >> > > >> > @Override > >> > public void onClick(View v) { > >> > // TODO Auto-generated method stub > >> > tv.setText("onClick"); > >> > but_click(v.getId()); > >> > } > >> > }; > >> > public void but_click(int btId){ > >> > switch (btId){ > >> > case R.id.but_sendName: > >> > tv.setText("but_click"); > >> > setName(); > >> > break; > >> > case R.id.but_clearName: > >> > clearName(); > >> > break; > >> > } > >> > } > >> > private void setName() { > >> > // TODO Auto-generated method stub > >> > String name="Null"; > >> > for (int i=0; i<NUM_PLAYER; i++){ > >> > namesET[i] = (EditText) findViewById(names[i]); > >> > } > >> > for (int i=0; i<NUM_PLAYER; i++){ > >> > name = namesET[i].getText().toString().trim(); > >> > players[i].setPlayerName(name); // remark: > >> > player.setPlayerName(name); <------------ can be run. > >> > } > >> > tv.setText(players[2].getPlayerName()); > >> > > >> > } > >> > private void clearName() { > >> > // TODO Auto-generated method stub > >> > for (int i=0; i<NUM_PLAYER; i++){ > >> > namesET[i].setText(""); > >> > } > >> > > >> > } > >> > } > >> > > >> > > >> > On Wed, May 23, 2012 at 6:29 PM, Daniel Drozdzewski > >> > <[email protected]> wrote: > >> >> > >> >> Jason > >> >> > >> >> name == null > >> >> > >> >> would not cause NPE, as it is simple assignment to a member variable > >> >> in MyPlayer class. If there was anything else within setName() that > >> >> caused NPE, we could see it on the top of the stacktrace. > >> >> > >> >> The cause is that *player* reference in *player_input.setName()* is > >> >> null. > >> >> > >> >> The way player object is being constructed is wrong: (player = new > >> >> Player;) This code should not compile, so it begs the question, how > >> >> did the OP manage to run it. > >> >> > >> >> There are many other issues with this code from the first look, like > >> >> naming conventions, and auto generated comments dotting it, just to > >> >> name the few. > >> >> > >> >> > >> >> > >> >> Daniel > >> >> > >> >> > >> >> > >> >> > >> >> On 23 May 2012 10:56, Jason Teagle <[email protected]> wrote: > >> >> >> I've create an object class but it cannot work. any mistake of my > >> >> >> code? > >> >> > > >> >> > > >> >> >> private void setName() { > >> >> >> // TODO Auto-generated method stub > >> >> >> getNameText(); > >> >> >> for (int i=0; i<NUM_PLAYER; i++){ > >> >> >> player.setPlayerName(name); // name is a String get from EditText > by > >> >> >> some > >> >> >> code before > >> >> >> } > >> >> >> } > >> >> > > >> >> > > >> >> >> when I run the programme, it have the following error code: > >> >> > > >> >> > > >> >> >> 05-23 09:24:35.115: E/AndroidRuntime(438): > >> >> >> java.lang.NullPointerException > >> >> >> 05-23 09:24:35.115: E/AndroidRuntime(438): at > >> >> >> hktsang56.android.mjhelper > >> >> >> .name_input.setName(name_input.java:81) > >> >> > > >> >> > > >> >> > Which of the lines in your source code is line 81? Is it the line > >> >> > that says > >> >> > getNameText()? We need to see that method's definition, if that is > >> >> > the case, > >> >> > since I can't see any other problem (if 'name' were coming out > null, > >> >> > then > >> >> > the error would be in setPlayerName() rather than in setName() - in > >> >> > fact it > >> >> > probably wouldn't generate an error in such a case). > >> >> > > >> >> > Show us the code for getNameText(). You are possibly trying to > access > >> >> > a > >> >> > control that you have not filled out correctly. > >> >> > > >> >> > > >> >> > > >> >> > > >> >> > > >> >> > -- > >> >> > You received this message because you are subscribed to the Google > >> >> > Groups "Android Developers" group. > >> >> > To post to this group, send email to > >> >> > [email protected] > >> >> > To unsubscribe from this group, send email to > >> >> > [email protected] > >> >> > For more options, visit this group at > >> >> > http://groups.google.com/group/android-developers?hl=en > >> >> > >> >> > >> >> > >> >> -- > >> >> Daniel Drozdzewski > >> >> > >> >> -- > >> >> You received this message because you are subscribed to the Google > >> >> Groups "Android Developers" group. > >> >> To post to this group, send email to > >> >> [email protected] > >> >> To unsubscribe from this group, send email to > >> >> [email protected] > >> >> For more options, visit this group at > >> >> http://groups.google.com/group/android-developers?hl=en > >> > > >> > > >> > -- > >> > HK Tsang > >> > > >> > -- > >> > You received this message because you are subscribed to the Google > >> > Groups "Android Developers" group. > >> > To post to this group, send email to > [email protected] > >> > To unsubscribe from this group, send email to > >> > [email protected] > >> > For more options, visit this group at > >> > http://groups.google.com/group/android-developers?hl=en > >> > >> -- > >> Daniel Drozdzewski > >> > >> -- > >> You received this message because you are subscribed to the Google > >> Groups "Android Developers" group. > >> To post to this group, send email to > [email protected] > >> To unsubscribe from this group, send email to > >> [email protected] > >> For more options, visit this group at > >> http://groups.google.com/group/android-developers?hl=en > > > > > > > > > > -- > > HK Tsang > > > > -- > > You received this message because you are subscribed to the Google > > Groups "Android Developers" group. > > To post to this group, send email to [email protected] > > To unsubscribe from this group, send email to > > [email protected] > > For more options, visit this group at > > http://groups.google.com/group/android-developers?hl=en > > > > -- > Daniel Drozdzewski > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en > -- HK Tsang -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

