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 < daniel.drozdzew...@gmail.com> wrote: > oh dear, > > i suggest learning java first. > > D. > > > On Thursday, 24 May 2012, HK Tsang <hktsan...@gmail.com> 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 < > daniel.drozdzew...@gmail.com> 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 <teagle.ja...@gmail.com> 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 > android-developers@googlegroups.com > >> > To unsubscribe from this group, send email to > >> > android-developers+unsubscr...@googlegroups.com > >> > 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 > android-developers@googlegroups.com > >> To unsubscribe from this group, send email to > >> android-developers+unsubscr...@googlegroups.com > >> 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 android-developers@googlegroups.com > > To unsubscribe from this group, send email to > > android-developers+unsubscr...@googlegroups.com > > 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 android-developers@googlegroups.com > To unsubscribe from this group, send email to > android-developers+unsubscr...@googlegroups.com > 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 android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en