我有4个imageview和4个edittext。我想,当我点击一个图像意味着写入edittext1,当第二个被点击时,它应该写入edittext2反之亦然。 我写了一些代码,但它抛出了一个错误..请修复它
这是我的代码:
package com.h2o;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTransaction;
import android.view.View;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.ImageView;
import java.util.Calendar;
public class AccountActivity extends FragmentActivity {
EditText dob,serviceFrom,prevServiceFrom,prevServiceTo,et;
ImageView pickDob,pickserviceFrom,pickprevServiceFrom,pickprevServiceTo;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.account);
dob = (EditText)findViewById(R.id.dobText);
serviceFrom = (EditText) findViewById(R.id.serviceFromText);
prevServiceFrom = (EditText) findViewById(R.id.prev_serviceFromText);
prevServiceTo = (EditText) findViewById(R.id.serviceToText);
pickDob = (ImageView)findViewById(R.id.datedob);
pickserviceFrom = (ImageView)findViewById(R.id.serviceFrom);
pickprevServiceFrom = (ImageView)findViewById(R.id.prev_serviceFrom);
pickprevServiceTo = (ImageView)findViewById(R.id.prev_serviceTo);
String item = getIntent().getStringExtra("item");
Fragment fragment = null;
switch(item) {
case "Balance": fragment = new BalanceFragment(); break;
case "Personal": fragment = new PersonalFragment(); break;
case "Work": fragment = new WorkFragment(); break;
case "Address": fragment = new AddressFragment(); break;
case "Vehicle": fragment = new VehicleFragment(); break;
case "Preference": fragment = new PreferenceFragment(); break;
case "About": fragment = new AboutFragment(); break;
case "Settings": fragment = new SettingsFragment(); break;
case "Help": fragment = new HelpFragment(); break;
default: fragment = new DefaultFragment(); break;
}
if (savedInstanceState == null) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
// AccountFragment fragment = new AccountFragment();
transaction.replace(R.id.account_frame, fragment);
transaction.commit();
}
setTitle(item);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
}
//Calendar picker
public void selectDate(View view) {
DialogFragment newFragment = new SelectDateFragment();
newFragment.show(getSupportFragmentManager(), "DatePicker");
}
public void populateSetDate( EditText et,int year, int month, int day) {
et.setText(month + "/" + day + "/" + year);
}
public class SelectDateFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
final Calendar calendar = Calendar.getInstance();
int yy = calendar.get(Calendar.YEAR);
int mm = calendar.get(Calendar.MONTH);
int dd = calendar.get(Calendar.DAY_OF_MONTH);
// Create a new instance of DatePickerDialog and return it
return new DatePickerDialog(getActivity(), this, yy, mm, dd);
}
public void onDateSet(DatePicker view, int yy, int mm, int dd) {
EditText et = dob;
if (view.equals(pickDob))
et = dob;
if (view.equals(pickserviceFrom))
et = serviceFrom;
if (view.equals(pickprevServiceFrom))
et = prevServiceFrom;
if (view.equals(pickprevServiceTo))
et = prevServiceTo;
populateSetDate(et,yy, mm + 1, dd);
}
}
}
我的logcat:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.EditText.setText(java.lang.CharSequence)' on a null object reference
at com.h2o.AccountActivity.populateSetDate(AccountActivity.java:94)
at com.h2o.AccountActivity$SelectDateFragment.onDateSet(AccountActivity.java:127)
at android.app.DatePickerDialog.onClick(DatePickerDialog.java:134)
at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:160)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)