2013-03-24 1 views
0

24 시간 형식의 timePicker가 있는데 결과를 가져 와서 변수에 넣은 다음 그 변수를 사용하여 textView에 표시하고 싶습니다. . 이클립스는 나에게 구문 오류를주지 않는다. 그러나 앱을 실행할 때 "DisplayMessageActivity.java"를 시작할 때 충돌이 발생한다.몇 가지 문제가있는 변수를 추가하여 간단한 응용 프로그램을 만들려고합니다.

package com.example.sleepytime; 

import android.annotation.SuppressLint; 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 
import android.widget.TimePicker; 

@SuppressLint("NewApi") 
public class DisplayMessageActivity extends Activity { 

TimePicker timepicker; 
public int hour1 = timepicker.getCurrentHour(); 
public int min1 = timepicker.getCurrentMinute(); 


@SuppressLint("NewApi") 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_display_message); 
    // Show the Up button in the action bar. 
    getActionBar().setDisplayHomeAsUpEnabled(true); 

    timepicker = (TimePicker) findViewById(R.id.timePicker1); 
    timepicker.setIs24HourView(true); 

    Button mButton = (Button) findViewById(R.id.button1); 
    mButton.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View printIt) { 
     final TextView mTextView = (TextView) findViewById(R.id.print); 
     mTextView.setText(hour1 + min1); 
} 

}); 

}}

답변

1

여기

public int hour1 = timepicker.getCurrentHour(); 
public int min1 = timepicker.getCurrentMinute(); 

timepickernull이다 : 여기

코드이다. 여기

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_display_message); 
    // Show the Up button in the action bar. 
    getActionBar().setDisplayHomeAsUpEnabled(true); 

timepicker = (TimePicker) findViewById(R.id.timePicker1); 
timepicker.setIs24HourView(true); 
hour1 = timepicker.getCurrentHour(); 
min1 = timepicker.getCurrentMinute(); 

처럼 onCreate()에 넣어와 내가 보는 첫 번째 문제입니다

public int hour1 = timepicker.getCurrentHour(); 
public int min1 = timepicker.getCurrentMinute(); 

public int hour1; 
public int min1; 

을 변경해야합니다. 더 많은 것은있을 수 있지만 더 이상 갈 수 없게됩니다.

mButton.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View printIt) { 
    final TextView mTextView = (TextView) findViewById(R.id.print); 
    String hourString = String.valueOf(hour); 
    String minString = String.valueOf(minute); 
    mTextView.setText(hourString + minString); 
+0

고마워요! 나는 더 이상 그 자리에서 충돌하지 않습니다. 내 문제는 이제 "button1"을 클릭하면 응용 프로그램이 다운되는 것입니다. 내가 원하는 것은 (결국) 사용자가 깨어나고 싶은 시간을 입력한다는 것입니다. 그런 다음 응용 프로그램에서 몇 가지 수식을 사용하여 (내가 준비했다고 생각합니다) 사용자에게 잠자기 시간을 권장하는 세 가지 대안을 제공합니다. 제안 사항이 있으십니까? – flowm0tion

+0

당신을 진심으로 환영합니다! 당신은 아마도'int's로'setText()'를 호출하려고하기 때문에 아마도 충돌하고 있습니다. 각각을'String.valueOf (hour1); '로'String'으로 변환 한 다음'setText()'에서 그 변수를 설정하십시오.'setText()'안에서 할 수는 있지만 깨끗하지는 않습니다. 행운을 빌어 요! – codeMagic

+0

미안하지만, 나는 이것에 아주 새롭다. String.valueOf()를 어떻게 사용합니까? 바르게? 어디서 그것을 넣을 수 있습니까? – flowm0tion

0
TimePicker timepicker; 
public int hour1 = timepicker.getCurrentHour(); 
public int min1 = timepicker.getCurrentMinute(); 

당신이 할 수 없어,이

timepicker = (TimePicker) findViewById(R.id.timePicker1); 
timepicker.setIs24HourView(true); 
hour1 = timepicker.getCurrentHour(); 
min1 = timepicker.getCurrentMinute(); 

플러스 3.0.place보다 낮은 API를 실행하면 현재의 코드를 깰 것 같은 그것을 당신에게 널 포인터 예외를 줄 것이다 getActionBar()에 대한 확인. setDisplayHomeAsUpEnabled (true);

또는 벌집 이전 버전을 지원하지 않으려면 최소 sdk를 변경하십시오.

관련 문제