2016-05-30 15 views
1

私はAndroidプログラミングにはまったく新しいです、私はばかな質問をしている場合は申し訳ありません。 TextViewのdatePicker onclickを追加し、対応するTextViewを更新する日付を選択する方法。私は作成しているフォームに複数の日付フィールドがあります。また、他のフラグメントにも多くの日付フィールドがあります。私は多くの答えを見てきましたが、それをどのように適用するかはわかりません。私はどのコードがどこに行くのかを意味します。親切に私をステップで説明してください。TextViiewのdatepicker onclickを追加する方法。フォームに複数の日付フィールドがあります

更新: は、私は今、異なるTextViewsのonclickの日付ピッカーを膨らませることができるよ、しかし、一つだけのTextViewではなく、対応のTextViewに日付の選択に更新されます。


XML:

<TextView 
     android:id="@+id/DateOfEventForm" 
     android:textSize="15dp" 
     android:background="@drawable/roundwhite" 
     android:layout_width="match_parent" 
     android:layout_height="38dp" 
     android:layout_gravity="center_horizontal" 
     android:textColor="@android:color/black" /> 
<TextView 
     android:id="@+id/TimeDateOccurence" 
     android:layout_width="match_parent" 
     android:textSize="15dp" 
     android:background="@drawable/roundwhite" 
     android:layout_height="38dp" 
     android:layout_gravity="center_horizontal" 
     android:textColor="@android:color/black" /> 

これは、アクティビティの断片が今

public class FragmentReportAFault extends Fragment { 
private View mRootView; 
private Button mNextButton, mSaveButton, mDeleteButton; 
private LinearLayout mFirstLayoutForm, mSecondLayoutForm; 
private TextView mSelectorOne, mSelectorTwo; 
private TextView DateOfEventForm,TimeDateOccurence; 
int clicked; 



@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    mRootView = inflater.inflate(R.layout.fragment_reportafault, container, false); 
    uiInitialize(); 
    setListners(); 
    return mRootView; 
} 


private void uiInitialize() { 
    mFirstLayoutForm = (LinearLayout) mRootView.findViewById(R.id.FirstLayoutForm); 
    mSecondLayoutForm = (LinearLayout) mRootView.findViewById(R.id.SecondLayoutForm); 
    mNextButton = (Button) mRootView.findViewById(R.id.btnNext); 
    mSaveButton = (Button) mRootView.findViewById(R.id.btnSave); 
    mDeleteButton = (Button) mRootView.findViewById(R.id.btnDelete); 
    mSelectorOne = (TextView) mRootView.findViewById(R.id.selector1); 
    mSelectorTwo = (TextView) mRootView.findViewById(R.id.selector2); 
    DateOfEventForm= (TextView)mRootView.findViewById(R.id.DateOfEventForm); 
    TimeDateOccurence= (TextView)mRootView.findViewById(R.id.TimeDateOccurence); 
} 
private DatePickerDialog.OnDateSetListener dateSetListener = new DatePickerDialog.OnDateSetListener() { 
    @Override 
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
     if (clicked == 0) { 
      DateOfEventForm.setText(year + " -" + (monthOfYear + 1) + "-" + dayOfMonth); 
     } 
     else if (clicked == 1){ 
      DateOfEventForm.setText(year + " -" + (monthOfYear + 1) + "-" + dayOfMonth); 

     } 
    } 
}; 

private void setListners() { 
    mNextButton.setOnClickListener(onClick); 
    mSaveButton.setOnClickListener(onClick); 
    mDeleteButton.setOnClickListener(onClick); 
    mFirstLayoutForm.setVisibility(View.VISIBLE); 
    mSecondLayoutForm.setVisibility(View.GONE); 
    mSelectorOne.setBackgroundResource(R.drawable.rounded_corner); 
    mSelectorTwo.setBackgroundResource(R.drawable.rounded_corner_white); 
    DateOfEventForm.setOnClickListener(onClick); 
    TimeDateOccurence.setOnClickListener(onClick); 
} 

View.OnClickListener onClick = new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     switch(v.getId()){ 
      case R.id.btnNext:{ 
       mFirstLayoutForm.setVisibility(View.GONE); 
       mSecondLayoutForm.setVisibility(View.VISIBLE); 
       mSelectorOne.setBackgroundResource(R.drawable.rounded_corner); 
       mSelectorTwo.setBackgroundResource(R.drawable.rounded_corner); 
       mSelectorTwo.setTextColor(Color.WHITE); 

      }break; 
      case R.id.btnSave:{ 

      }break; 
      case R.id.btnDelete:{ 

      } 
      break; 
      case R.id.DateOfEventForm:{ 

       Calendar calendar = Calendar.getInstance(); 
       int year = calendar.get(Calendar.YEAR); 
       int month = calendar.get(Calendar.MONTH); 
       int day = calendar.get(Calendar.DAY_OF_MONTH); 
       clicked =0; 

       DatePickerDialog dateDialog = new DatePickerDialog(getActivity(), dateSetListener, year, month, day); 
       dateDialog.show(); 
      } 
      break; 
      case R.id.TimeDateOccurence:{ 

       Calendar calendar = Calendar.getInstance(); 
       int year = calendar.get(Calendar.YEAR); 
       int month = calendar.get(Calendar.MONTH); 
       int day = calendar.get(Calendar.DAY_OF_MONTH); 
       clicked =1; 

       DatePickerDialog dateDialog = new DatePickerDialog(getActivity(), dateSetListener, year, month, day); 
       dateDialog.show(); 
      } 
      break; 

     } 
    } 
};} 

答えて

2

をどのように見えるかは、あなたのコードの変更を行いました。私はそれがここでエラーを示しています。この

private View mRootView; 
    private Button mNextButton, mSaveButton, mDeleteButton; 
    private LinearLayout mFirstLayoutForm, mSecondLayoutForm; 
    private TextView mSelectorOne, mSelectorTwo; 
    int clicked; 

    //added 
    private TextView DateOfEventForm; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     mRootView = inflater.inflate(R.layout.fragment_reportafault, container, false); 
     uiInitialize(); 
     setListners(); 
     return mRootView; 
    } 


    private void uiInitialize() { 
     mFirstLayoutForm = (LinearLayout) mRootView.findViewById(R.id.FirstLayoutForm); 
     mSecondLayoutForm = (LinearLayout) mRootView.findViewById(R.id.SecondLayoutForm); 
     mNextButton = (Button) mRootView.findViewById(R.id.btnNext); 
     mSaveButton = (Button) mRootView.findViewById(R.id.btnSave); 
     mDeleteButton = (Button) mRootView.findViewById(R.id.btnDelete); 
     mSelectorOne = (TextView) mRootView.findViewById(R.id.selector1); 
     mSelectorTwo = (TextView) mRootView.findViewById(R.id.selector2); 
     DateOfEventForm= (TextView)mRootView.findViewById(R.id.DateOfEventForm); 

    } 

    private DatePickerDialog.OnDateSetListener dateSetListener = new DatePickerDialog.OnDateSetListener() { 
     @Override 
     public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
      if(clicked==0) { 
       DateOfEventForm.setText(year +" -"+(monthOfYear+1)+ "-"+dayOfMonth); 
      }   
    } 
    }; 

    private void setListners() { 
     mNextButton.setOnClickListener(onClick); 
     mSaveButton.setOnClickListener(onClick); 
     mDeleteButton.setOnClickListener(onClick); 
     DateOfEventForm.setOnClickListener(onClick); 
     mFirstLayoutForm.setVisibility(View.VISIBLE); 
     mSecondLayoutForm.setVisibility(View.GONE); 
     mSelectorOne.setBackgroundResource(R.drawable.rounded_corner); 
     mSelectorTwo.setBackgroundResource(R.drawable.rounded_corner_white); 
    } 

    View.OnClickListener onClick = new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      switch(v.getId()){ 
       case R.id.btnNext:{ 
        mFirstLayoutForm.setVisibility(View.GONE); 
        mSecondLayoutForm.setVisibility(View.VISIBLE); 
        mSelectorOne.setBackgroundResource(R.drawable.rounded_corner); 
        mSelectorTwo.setBackgroundResource(R.drawable.rounded_corner); 
        mSelectorTwo.setTextColor(Color.WHITE); 

       }break; 
       case R.id.btnSave:{ 

       }break; 
       case R.id.btnDelete:{ 

       } 
       break; 
       case R.id.DateOfEventForm:{ 

         Calendar calendar = Calendar.getInstance(); 
     int year = calendar.get(Calendar.YEAR); 
     int month = calendar.get(Calendar.MONTH); 
     int day = calendar.get(Calendar.DAY_OF_MONTH); 

     clicked =0; 
     DatePickerDialog dateDialog = new DatePickerDialog(getActivity(),  dateSetListener, year, month, day); 
     dateDialog.show(); 
       } 
       break; 

      } 
     } 
    }; } 
+1

それを.Tryテストしていない:DatePickerDialog dateDialog =新しいDatePickerDialog(これ、dateSetListener、年、月、日)。 dateSetListnerの下で –

+1

が編集されました。これはフラグメントであるので、getActivity()で置き換えます –

+0

それは働きました!どうもありがとうございます :) 。だから私は同じメソッドを実装する必要があります日付のフィールドを持っているさまざまなフラグメント活動のために..右か?また、アクティビティに時間フィールドがあるので、時間ピッカーから時間を選択する方法を教えてください。 –

関連する問題