で新しいプロジェクトを作成しました。Androidスタジオ2.2.2のナビゲーションドロワーアクティビティテンプレート。私はFrameLayoutを使用することに決めました。ナビゲーションメニュー項目をクリックすると、新しいフラグメントが読み込まれます。私content_main.xmlでアクティビティのフラグメントからのAndroidのボタンテキスト
は、私はこのようなでframeLayout要素を持っている:
コンテンツが表示されますフレームがある<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
。
その後、私はレイアウトfragment_one.xmlとそのクラスFragmentOneを持っており、彼らは次のようになります。
fragment_one.xml
<Button
android:text="Default Button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/mybutton" />
FragmentOneクラス
私はエラーを取得 ここFragmentManager fm = getSupportFragmentManager();
fm.beginTransaction().replace(R.id.content_frame, new FragmentOne()).commit();
FragmentOne fragment_obj = (FragmentOne)getSupportFragmentManager().
findFragmentById(R.id.frOne);
fragment_obj.changeBtnText("Changed text");
::私は主からの断片のボタンのテキストを変更するにはどうすればよい
Attempt to invoke virtual method 'void com.example.user.myapplication.FragmentOne.changeBtnText(java.lang.String)' on a null object reference
私は、コードを持っているMainActivityさんのonCreate()メソッドで10
public class FragmentOne extends Fragment {
Button btn;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_one, container, false);
btn = (Button) view.findViewById(R.id.mybutton);
return view;
}
public void changeBtnText(String txt)
{
btn.setText(txt);
}
}
changeBtnText(String txt)メソッドを使用したアクティビティ?
タイトルで言うように、私はActivityで呼びたいと思っています。 – Hawkridge
URの質問にテキストを何時に表示するか明確に定義する必要があります。私はあなたがクリックされたnav項目に従ってテキストを変更したいと思った。私はそれに応じて私の答えを編集しました。 – uguboz
タイトルには、「アクティビティのFragmentからボタンテキストを設定する」と表示されます。しかし、コード内で何をしているのかは、アクティビティ – uguboz