2011-05-07 27 views
0

你好 我是新的Android我試圖建立一個程序,但總是當我想要啓動程序時,它給了我一個信息:「應用程序Traim Time(process timetrain.com)意外停止,請重試。「 PLE任何人都可以幫我解決問題 謝謝Android應用無法啓動。 '...已經意外停止'消息

這個代碼

package timetrain.com; 


import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.view.Window; 
import android.widget.Button; 
import android.widget.EditText; 


public class timetrain extends Activity { 

    private final static int REQUEST_TEXT=0; 
    private EditText inputTime; 
    private Button go1; 
    int heure =0; 



/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

// Hide the title bar 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.main); 

    go1=(Button)findViewById(R.id.go1); 
    inputTime=(EditText)findViewById(R.id.inputTime); 
    heure= Integer.parseInt (inputTime.getText().toString()); 

    go1.setOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View v) { 

      if(v==go1){ 

       Intent intent = new Intent(timetrain.this,lirefile.class); 
       intent.putExtra("enterTime",heure); 

       startActivityForResult(intent,REQUEST_TEXT); 
      } 
     } 

    }); 

} 

public static int getRequestText() { 
    return REQUEST_TEXT; 
} 

}

+0

你的logcat看起來像什麼? – forsvarir 2011-05-07 21:37:33

+0

沒有看到任何日誌給我們一個線索什麼是錯誤的 - 我猜想'go1'或'inputTime'回來作爲'null'值,然後當你去做一些事情,你會得到一個空引用異常。 – debracey 2011-05-07 21:40:25

+0

也只是爲了確保...您是否已將活動添加到清單文件中? – Dan 2011-05-07 21:43:22

回答

0

只是幾件事情不正確......

  1. 你有startActivityForResult()

    ,但沒有相應的onActivityResult()http://rahulonblog.blogspot.com/2010/05/android-startactivityforresult-example.html

  2. if(v==go1); ==不會像你想象的那樣使用非基元(int/floats/booleans),你需要使用v.equals(go1)來代替。

+0

2.不完全正確。對於字符串,很多人對'=='感到困惑,不會比較字符串內容。但在這種情況下,這是預計將進行比較的實例。不能說使用平等也會造成任何傷害。此外,整個if-check幾乎是不必要的,因爲'v'不應該只是'go1'。 – harism 2011-05-07 23:02:03

+0

實際上2是完全正確的......如果你想比較對象引用,那麼==不是你需要使用的。在上面的例子中,他們試圖比較View對象。除非對象共享相同的內存引用,否則它們將不會被視爲相同[http://download.oracle.com/javase/tutorial/java/nutsandbolts/op2.html] – ekawas 2011-05-08 20:51:41

+0

我不打算檢查Button或任何繼承路徑上的類,覆蓋Object中的equals。但[Object](http://developer.android.com/reference/java/lang/Object.html#equals%28java.lang.Object%29)中的默認實現使用'=='比較。如果在這種情況下'v == go1'具有與'v.equals(go1)'完全相同的效果,不會感到驚訝。 – harism 2011-05-08 21:07:07