English 中文(简体)
飞机场外
原标题:setText make apk crash

I m trying to develop a very simple apk.
I m using a textView to show two team s name that i enter in a previous activity (brought here with the intent that open this activity). When i try to use setText to show the names of these teams the apk crash.

This is the class that crash:

    public class MatchPage extends Activity {
private String locali= null;
private String ospiti= null;
private TextView localiTV;
private TextView ospitiTV;
private MatchRugby partita;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);     
    setContentView(R.layout.match);
     localiTV =(TextView) findViewById(R.id.localiTV);
     ospitiTV =(TextView) findViewById(R.id.ospitiTV);
    getLocali();
    getOspiti();
    createMatch();



     localiTV.setText("Locali /n"+ partita.teamA.getName());
     ospitiTV.setText("Ospiti /n"+ partita.teamB.getName());




}

/**
 * Prende il nome della squadra locale dall intent
 * @return
 */
public String getLocali(){
    Intent matchStart = getIntent();
    String locali = matchStart.getStringExtra(NewMatchPage.LOCALI);
    return locali;
}

/**
 * prende il nome della squadra ospite dall intent
 * @return
 */
public String getOspiti(){
    Intent matchStart = getIntent();
    String ospiti = matchStart.getStringExtra(NewMatchPage.OSPITI);
    return ospiti;
}

public MatchRugby createMatch(){
    TeamRugby teamLocali= new TeamRugby(locali);
    TeamRugby teamOspiti= new TeamRugby(ospiti);
    MatchRugby partita= new MatchRugby(teamLocali, teamOspiti);
    return partita;
}
    }

这是XML:

   <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

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

    android:textAppearance="?android:attr/textAppearanceLarge" />


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

    android:textAppearance="?android:attr/textAppearanceLarge" />

</LinearLayout>

这是发出意图的类别:

   public class NewMatchPage extends Activity {

public static final String LOCALI = null;
public static final String OSPITI = null;
   private Button startMatch;
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.new_match);

     startMatch= (Button) findViewById(R.id.startMatch);
        startMatch.setOnClickListener(new View.OnClickListener(){


            public void onClick(View arg0) {
                startMatch();

            }

        });
}

public void startMatch(){
    Intent startMatch= new Intent(this, MatchPage.class);

    //Prendo il testo scritto nella casella locali e la porto nella partita
    EditText locali= (EditText) findViewById(R.id.Locali);
    String locali1 = locali.getText().toString();
    startMatch.putExtra(LOCALI, locali1);
    //Prendo il testo scritto nella casella ospiti e la porto nella partita
    EditText ospiti= (EditText) findViewById(R.id.Ospiti);
    String ospiti1 = ospiti.getText().toString();
    startMatch.putExtra(OSPITI, ospiti1);
    //inizio la partita
    startActivity(startMatch);
}

    }

最后,该标志的标志是:

    04-24 16:49:08.928: W/dalvikvm(1377): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
    04-24 16:49:08.958: E/AndroidRuntime(1377): FATAL EXCEPTION: main
    04-24 16:49:08.958: E/AndroidRuntime(1377): java.lang.RuntimeException: Unable to start activity    ComponentInfo{com.gmail.david.corsalini.sportscout/com.gmail.david.corsalini.sportscout.MatchPage}: java.lang.NullPointerException
    04-24 16:49:08.958: E/AndroidRuntime(1377):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
    04-24 16:49:08.958: E/AndroidRuntime(1377):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
    04-24 16:49:08.958: E/AndroidRuntime(1377):     at android.app.ActivityThread.access$600(ActivityThread.java:123)
    04-24 16:49:08.958: E/AndroidRuntime(1377):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
    04-24 16:49:08.958: E/AndroidRuntime(1377):     at android.os.Handler.dispatchMessage(Handler.java:99)
    04-24 16:49:08.958: E/AndroidRuntime(1377):     at android.os.Looper.loop(Looper.java:137)
    04-24 16:49:08.958: E/AndroidRuntime(1377):     at android.app.ActivityThread.main(ActivityThread.java:4424)
    04-24 16:49:08.958: E/AndroidRuntime(1377):     at java.lang.reflect.Method.invokeNative(Native Method)
    04-24 16:49:08.958: E/AndroidRuntime(1377):     at java.lang.reflect.Method.invoke(Method.java:511)
    04-24 16:49:08.958: E/AndroidRuntime(1377):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
    04-24 16:49:08.958: E/AndroidRuntime(1377):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
    04-24 16:49:08.958: E/AndroidRuntime(1377):     at dalvik.system.NativeStart.main(Native Method)
    04-24 16:49:08.958: E/AndroidRuntime(1377): Caused by: java.lang.NullPointerException
    04-24 16:49:08.958: E/AndroidRuntime(1377):     at com.gmail.david.corsalini.sportscout.MatchPage.onCreate(MatchPage.java:25)
    04-24 16:49:08.958: E/AndroidRuntime(1377):     at android.app.Activity.performCreate(Activity.java:4465)
    04-24 16:49:08.958: E/AndroidRuntime(1377):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
    04-24 16:49:08.958: E/AndroidRuntime(1377):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
    04-24 16:49:08.958: E/AndroidRuntime(1377):     ... 11 more

2. 校对

    public class MatchRugby {
public TeamRugby teamA;
public TeamRugby teamB;

/**
 * Costruttore della partita
 */
public MatchRugby(TeamRugby teamA, TeamRugby teamB){
    this.teamA=teamA;
    this.teamB=teamB;
}

/**
 * @return the teamA
 */
public TeamRugby getTeamA() {
    return teamA;
}


/**
 * @param teamA the teamA to set
 */
public void setTeamA(TeamRugby teamA) {
    this.teamA = teamA;
}


/**
 * @return the teamB
 */
public TeamRugby getTeamB() {
    return teamB;
}


/**
 * @param teamB the teamB to set
 */
public void setTeamB(TeamRugby teamB) {
    this.teamB = teamB;
}


public void EndOfMatch(){
    //nothing to do with the problem
    }
}
最佳回答

你们可变的透视全然不一。 设立了你这样的职位:

public class MatchPage extends Activity {
private String locali= null;
private String ospiti= null;
private TextView localiTV;
private TextView ospitiTV;
private MatchRugby partita;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);     
    setContentView(R.layout.match);
     localiTV =(TextView) findViewById(R.id.localiTV);
     ospitiTV =(TextView) findViewById(R.id.ospitiTV);
    getLocali();
    getOspiti();
    createMatch();

     localiTV.setText("Locali /n"+ partita.teamA.getName());
     ospitiTV.setText("Ospiti /n"+ partita.teamB.getName());

}

/**
 * Prende il nome della squadra locale dall intent
 * @return
 */
public String getLocali(){
    if (locali == null) {
      Intent matchStart = getIntent();
      locali = matchStart.getStringExtra(NewMatchPage.LOCALI);
    }
    return locali;
}

/**
 * prende il nome della squadra ospite dall intent
 * @return
 */
public String getOspiti(){
    if (ospiti == null) {
      Intent matchStart = getIntent();
      ospiti = matchStart.getStringExtra(NewMatchPage.OSPITI);
    }
    return ospiti;
}

public MatchRugby createMatch(){
    TeamRugby teamLocali= new TeamRugby(locali);
    TeamRugby teamOspiti= new TeamRugby(ospiti);
    partita = new MatchRugby(teamLocali, teamOspiti);
    return partita
}

  private String locali
  private String ospiti
  private MatchRugby partita
}
问题回答

页: 1 勿庸置疑,这行文在你登出的法典中是哪条,但我最好的猜测是你的<条码>。 呼吁未能找到任何东西。

java.lang.NullPointerException
   at com.gmail.david.corsalini.sportscout.MatchPage.onCreate(MatchPage.java:25)

参看您的物体与上述错误无关。 以及根据你们的法典,你们在开始时就是这样。

createMatch();

将以上方法改为以下线

partita = createMatch();

也可以修改以下法典:

public void createMatch(){
    TeamRugby teamLocali= new TeamRugby(locali);
    TeamRugby teamOspiti= new TeamRugby(ospiti);
    partita= new MatchRugby(teamLocali, teamOspiti);
} 




相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签