저는 이것이 기본적인 질문이라는 것을 알고 있습니다 만, 저는이 모든 것에 대해 매우 새로운 것입니다. 아래 코드에서이 onPause 메서드가 있습니다.onPause() 메서드에 항목 전달
public void onPause(){
super.onPause();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(input.getWindowToken(), 0);
}
input.getWindowToken()의 입력 부분이 작동하지 않습니다. 동일한 범위에서 정의되거나 인스턴스화되지 않았기 때문에 그것이라고 추측합니다. 나는 올바른 용어를 사용하고 있다고 생각한다. 나도 내가 여기에 EditText 객체를 사용하려고 노력해야한다는 점에 대해 긍정적이지는 않지만, 내가하려는 것은 무엇이든지 작동하지 않는 것처럼 보인다.
내 onPause() 메소드 또는 그 밖의 다른 메소드에 어떻게 전달합니까? 모든 코드는 다음과 같습니다.
package com.example.test_project;
import java.util.Calendar;
import com.example.test_project.R.string;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.TimePickerDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.TimePicker;
public class NewWorkout extends Activity {
/** Called when the activity is first created. */
private TextView mDateDisplay;
private Button mPickDate;
private int mYear;
private int mMonth;
private int mDay;
private TextView mTimeDisplay;
private Button mTimePicker1;
private int hour;
private int minute;
private String zone;
static final int DATE_DIALOG_ID = 0;
static final int TIME_DIALOG_ID = 99;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new_workout);
final InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
// capture our View elements
mDateDisplay = (TextView) findViewById(R.id.dateOfWorkoutTextView);
mPickDate = (Button) findViewById(R.id.dateOfWorkoutButton);
mTimeDisplay = (TextView) findViewById(R.id.timeOfWorkoutTextView);
mTimePicker1 = (Button) findViewById(R.id.timeOfWorkoutButton);
// add a click listener to the button
mPickDate.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
showDialog(DATE_DIALOG_ID);
}
});
// get the current date
final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);
final Calendar t = Calendar.getInstance();
hour = t.get(Calendar.HOUR_OF_DAY);
minute = t.get(Calendar.MINUTE);
//set the current time into the textview
mTimePicker1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
showDialog(TIME_DIALOG_ID);
}
});
}
// updates the date in the TextView
private void updateDisplay() {
StringBuilder string1 = new StringBuilder()
// Month is 0 based so add 1
.append(mMonth + 1).append("-")
.append(mDay).append("-")
.append(mYear).append(" ");
mDateDisplay.setText(string1);
}
// the callback received when the user "sets" the date in the dialog
private DatePickerDialog.OnDateSetListener mDateSetListener =
new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
mYear = year;
mMonth = monthOfYear;
mDay = dayOfMonth;
updateDisplay();
}
};
private TimePickerDialog.OnTimeSetListener timePickerListener =
new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int selectedHour, int selectedMinute) {
hour = selectedHour;
minute = selectedMinute;
updateTimeDisplay();
}
};
//set current time into textView
private void updateTimeDisplay() {
if(hour > 12){
hour -= 12;
zone = "PM";
}
else
zone = "AM";
if(minute >= 10){
mTimeDisplay.setText(new StringBuilder().append(hour)
.append(":").append(minute).append(" ").append(zone));
}
else
mTimeDisplay.setText(new StringBuilder().append(hour)
.append(":").append("0").append(minute).append(" ").append(zone));
}
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DATE_DIALOG_ID:
return new DatePickerDialog(this, mDateSetListener, mYear, mMonth,
mDay);
case TIME_DIALOG_ID:
return new TimePickerDialog(this, timePickerListener, hour, minute, false);
}
return null;
}
public void nameOfWorkout(View view){
AlertDialog.Builder nameOfWorkoutAlert = new AlertDialog.Builder(this);
nameOfWorkoutAlert.setTitle("Enter a Name for This Workout");
// Set an EditText view to get user input
final EditText input = new EditText(this);
nameOfWorkoutAlert.setView(input);
// Prepping the soft keyboard to open with the AlertDialog
final InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(input.getWindowToken(), 0);
nameOfWorkoutAlert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String value = input.getText().toString();
TextView edit = (TextView) findViewById(R.id.nameOfWorkoutTextView);
edit.setText(value);
imm.toggleSoftInput(InputMethodManager.RESULT_HIDDEN, 0);
}
});
nameOfWorkoutAlert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
imm.toggleSoftInput(InputMethodManager.RESULT_HIDDEN, 0);
}
});
//alert.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
nameOfWorkoutAlert.show();
//Causing the soft keyboard to open with the AlertDialog
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
}
public void onPause(){
super.onPause();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(input.getWindowToken(), 0);
}
public void typeOfWorkout(View view){
final String [] items=new String []{"Weight-lifting","Cardio","Mixture"};
AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setTitle("Select Today's Workout type");
builder.setItems(items, new android.content.DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
TextView txt=(TextView)findViewById(R.id.typeOfWorkoutTextView);
txt.setText(items[which]);
}
});
builder.show();
}
}
감사합니다.