を作成することなく、ここにあなたが何ができるかです:
- を取得、その後、フラグメントIDを取得し、あなたのフラグメントに
- をのTextViewのIDを渡します
getActivity()
経由のテキストビューへの参照。以下のような
何かが働くだろう:
fm = getFragmentManager();
myFragment = new Fragment_Edit();
FirstButton.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// Pass the id of view to fragment
Bundle data = new Bundle();
data.putInt("id", v.getId());
myFragment.setArgument(data);
myFragment.show(fm, "theFragment");
return false;
}
});
あなたのフラグメントの
onCreate()
で次に
:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the data
if (getArguments() != null) {
Bundle data = getArguments();
int id = data.getInt("id");
// Get the corresponding textview from parent activity
textView = (TextView) getActivity().findViewById(id);
}
}
あなたがこのアプローチに親のTextViewを設定するか、またはインターフェイスを設定しますは、親アクティビティと通信します。第2の(インタフェース)アプローチが必要かどうかを教えてください。
UPDATE:
[OK]を、私はステップによって、この設計ステップをご案内します。
はちょうどあなたのようなあなたのフラグメントでTextView
を宣言しますEditText
ため。ですから、private TextView textView;
のtextViewを上記のコードと同じように初期化します。
ここであなたのEditText
さんはどこに参加しますか?これは、ユーザーからテキストを取得するために使用されます。 EditText
に入力したテキストユーザーを使用してtextView
を設定します。したがって、次のようなもの:
String newText = editText.getText().toString();
textView.setText(newText);
ですから、それは今働いてんだ、とはいあなたはすべてのボタンに同じことを行う必要があります。何ができることはあなたのために仕事をしてメソッドを記述し、ちょうどあなたがしたいボタンに渡しです:
private void addOnClickListener(Button button, myFragment) {
button.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// Pass the id of view to fragment
Bundle data = new Bundle();
data.putInt("id", v.getId());
myFragment.setArgument(data);
myFragment.show(fm, "theFragment");
return false;
}
});
は、それからちょうど行います
addOnClickListener(FirstButton, myFragment);
addOnClickListener(SecondButton, myFragment);
などを。
答えのおかげで、正しい方法のようですが、私はそれについていくつか質問があります。あなたが 'data.putString(" id "、v.getId());と言ったら、それはButtonのビューのIDを渡しませんか?私はこれを 'String.valueOf(FirstText.getId()))'に変更しました。さらに、この 'myFragment.setArgument(data);'はエラーを返します –
私のお詫びは 'data.putInt( "id"、v.getId()) ' –
これはどのようなエラーですか? –