2017-06-22 51 views
-3

應用程序打開正常,但打開此活動時顯示「應用程序停止」。我不明白是什麼問題。也許API級別與calendar.get()不兼容? 如果是這樣,我該如何解決它?在開啓該活動時,我的程序中出現「應用程序停止運行」的錯誤信息?

public class SearchRide extends AppCompatActivity { 

int p=1; 
private int year,month,day; 
Calendar calendar=Calendar.getInstance(); 
final EditText etDate=(EditText) findViewById(R.id.etDate); 


protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_search_ride); 






    TextView tFrom=(TextView) findViewById(R.id.tFrom); 
    TextView tTo=(TextView) findViewById(R.id.tTo); 
    EditText etFrom=(EditText) findViewById(R.id.etFrom); 
    EditText etTo=(EditText) findViewById(R.id.etTo); 
    Button bSearch=(Button) findViewById(R.id.bSearch); 
    ImageView iplussign=(ImageView) findViewById(R.id.iplussign); 
    ImageView iminussign=(ImageView) findViewById(R.id.iminussign); 
    final TextView tNumber=(TextView) findViewById(R.id.tNumber); 

    tNumber.setText(String.valueOf(p)); 
    iplussign.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if(p<=9) { 
       p++; 
       tNumber.setText(String.valueOf(p)); 
      } 
     } 
    }); 
    iminussign.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if(p>=2) { 
       p--; 
       tNumber.setText(String.valueOf(p)); 
      } 
     } 
    }); 
    etFrom.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent ListFrom=new Intent(SearchRide.this,ListFrom.class); 
      SearchRide.this.startActivity(ListFrom); 


     } 
    }); 
    etTo.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent ToList =new Intent(SearchRide.this,ListTo.class); 
      SearchRide.this.startActivity(ToList); 
     } 
    }); 

    etDate.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      new DatePickerDialog(SearchRide.this,listener,calendar.get(Calendar.DAY_OF_MONTH),calendar.get(Calendar.MONTH),calendar.get(Calendar.YEAR)).show(); 

     } 
    }); 
} 
DatePickerDialog.OnDateSetListener listener= new DatePickerDialog.OnDateSetListener() { 
    @Override 
    public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) { 

     etDate.setText("4"); 



    } 
}; 

}

回答

0

你不能在OnCreate方法之外設置此代碼。由於您的佈局尚未創建,因爲它們的活動沒有內容,所以無法找到ViewById。您必須先執行setContentView,然後纔會對您的活動添加視圖。

final EditText etDate=(EditText) findViewById(R.id.etDate); 

設置這些對象,而無需初始化它們,然後你setContentView(LAYOUT);

EditText etDate; 

public void onCreate(Bundle savedIntanceState) { 
    .... 

    etDate = findViewById(R.id.etDate); 
初始化後,在你的onCreate
4

沒有連接到你的活動之前setContentView函數調用佈局連接到您的活動後,這樣初始化你的看法佈局

應該

// global reference 
EditText etDate; 


protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_search_ride); 
    // initialization after the layout is attached to activity 
    etDate=(EditText) findViewById(R.id.etDate); 
相關問題