2017-08-10 10 views
1

アクティビティをクリックしてボタン(btnTransmit)のフラグメントからonOptionsItemSelected(menuItemTransmitMeterReading)をトリガする方法。私はボタンをmenuItemと同じようにする必要があります。すべての余分なものを置き、新しい活動を開始してください。私はアンドロイドで新しく、断片は私のために非常に難しいです。
フラグメント
アクティビティボタンのクリックでどのようにトリガーされたonOptionsItemSelected(フラグメント)

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.account_detail, container, false); 
     if (mItem != null) { 
      ((TextView) rootView.findViewById(R.id.account_detail)).setText(mItem.details); 
     } 
     return rootView; 
    } 
    @Override 
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
     super.onCreateOptionsMenu(menu, inflater); 
     inflater.inflate(R.menu.menu_account, menu); 
     menuItemAccountDelete = menu.findItem(R.id.action_account_delete); 
     menuItemTransmitMeterReading = menu.findItem(R.id.action_transmit_meter_readings); 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     if (item.equals(menuItemAccountDelete)) { 
      FragmentManager manager = getActivity().getSupportFragmentManager(); 
      MyDeleteAccountDialog myDialog = new MyDeleteAccountDialog(); 
      myDialog.LS = mItem.ls; 
      myDialog.show(manager, "dialog"); 
     } else if (item.equals(menuItemTransmitMeterReading)) { 
      Intent intent = new Intent(getActivity(), ActivityAccountTransmitMeterReading.class); 
      intent.putExtra(ACCOUNT_LS, mItem.ls); 
      intent.putExtra(ACCOUNT_NUMBER_OF_ZONES, mItem.MeterZonesCount); 
      intent.putExtra(ACCOUNT_LAST_METER_READING, mItem.LastMeterReading); 
      intent.putExtra(ACCOUNT_METER_NUMBER_OF_DIGITS, mItem.MeterNumberOfDigits); 
      intent.putExtra(ACCOUNT_ADDRESS, mItem.Address); 
      intent.putExtra(ACCOUNT_RMES, mItem.R_mes); 
      intent.putExtra(ACCOUNT_FKVT1, mItem.FKVT1); 
      intent.putExtra(ACCOUNT_FKVT2, mItem.FKVT2); 
      intent.putExtra(ACCOUNT_FKVT3, mItem.FKVT3); 
      intent.putExtra(ACCOUNT_FIO, mItem.fio); 
      if(mItem.LastMeterReading.contains("TEST")){ 
       FragmentManager manager = getActivity().getSupportFragmentManager(); 
       MyTransmitMeterReadingDialog myTransmitMeterReadingDialog = new MyTransmitMeterReadingDialog(); 
       myTransmitMeterReadingDialog.show(manager,"dialog"); 
      } 
      else { 
       startActivityForResult(intent, REQUEST_ACCOUNT_TRANSMIT_METER_READING); 

      } 
     } 

     return super.onOptionsItemSelected(item); 
    } 

layoutFragment.xml

<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/account_detail" 
    style="?android:attr/textAppearanceLarge" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:padding="0dp" 
    android:textIsSelectable="true" 
    tools:context="local.soe.itps02.soebilling.FragmentAccountDetail" /><br> 

layoutActivity.xml

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context="local.soe.itps02.soebilling.ActivityAccountDetail" 
    tools:ignore="MergeRootFrame"> 
    <android.support.design.widget.AppBarLayout 
     android:id="@+id/app_bar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/AppTheme.AppBarOverlay"> 
     <android.support.v7.widget.Toolbar 
      android:id="@+id/detail_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      app:popupTheme="@style/AppTheme.PopupOverlay" /> 
    </android.support.design.widget.AppBarLayout> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:layout_marginTop="70dp"> 
     <Button 
      android:id="@+id/btnTransmit" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:onClick="OnActionButtonClick" 
      android:layout_weight="1" 
      android:text="Transmit" /> 
     <Button 
      android:id="@+id/btnPay" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:onClick="OnActionButtonClick" 
      android:layout_weight="1" 
      android:text="Pay" 
      /> 
    </LinearLayout> 
    <android.support.v4.widget.NestedScrollView 
     android:id="@+id/account_detail_container" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_marginTop="65dp" 
     android:overScrollMode="never" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"> 
    </android.support.v4.widget.NestedScrollView> 
</android.support.design.widget.CoordinatorLayout> 
+0

私の提案は、フラグメントでそのやcalメソッドを行うメソッドを作成することです。あなたが望むなら、私は1つの答えでよりよく説明することができます。 –

+0

あなたが私の説明を良くすることができれば嘆願 – mario

+0

そして、あなたが@YueMucの答えを試してみると、彼は私が思っているロジックに答えます。しかし、私が答えを作りたいのですが、ロジックは同じです。 –

答えて

1

私が最初mainActivity内でこのメソッドを作成、あなたがこれを行うことができますコメントで言ったように:

startintent() 

それとも、で呼び出したい場合:ちょうどこれを呼び出すonclickListenerかonOptionsItemSelected()

public void startintent(){ 
Intent intent = new Intent(MainActivity.this, ActivityAccountTransmitMeterReading.class); 
      intent.putExtra(ACCOUNT_LS, mItem.ls); 
      intent.putExtra(ACCOUNT_NUMBER_OF_ZONES, mItem.MeterZonesCount); 
      intent.putExtra(ACCOUNT_LAST_METER_READING, mItem.LastMeterReading); 
      intent.putExtra(ACCOUNT_METER_NUMBER_OF_DIGITS, mItem.MeterNumberOfDigits); 
      intent.putExtra(ACCOUNT_ADDRESS, mItem.Address); 
      intent.putExtra(ACCOUNT_RMES, mItem.R_mes); 
      intent.putExtra(ACCOUNT_FKVT1, mItem.FKVT1); 
      intent.putExtra(ACCOUNT_FKVT2, mItem.FKVT2); 
      intent.putExtra(ACCOUNT_FKVT3, mItem.FKVT3); 
      intent.putExtra(ACCOUNT_FIO, mItem.fio); 

} 

そして、ボタンの内側をフラグメント内のボタンonclickListenerまたはonOptionsItemSelected()

MainActivity.startintent() 
関連する問題