3

あるフラグメントからデータを投稿し、ビューを追加して他のフラグメントを更新しています。私はリストビューを使用していません。LinearLayout を使用しています。

私は非常に単純な疑問を持っています。ビューを取得し、別のビューを追加して更新するにはどうすればよいですか?

基本的に、すでにデータを持っているlinearlayoutを膨らませ、フラグメントを追加するメインアクティビティにビューを追加したいと考えています。

編集:

LinearLayout ll = (LinearLayout)fragment.getView().findViewById(R.id.commentFragmentLayout);
            ViewGroup view = (ViewGroup) ll.getParent();
            View customView = view;



            TextView   commentContext  = (TextView) customView.findViewById(R.id.commentText);

            commentContext.setText("hello");


            view.addView(customView);

メイン アクティビティでそれを実行しようとしましたが、ビューで null ポインター例外が発生しました。

編集2:

   FragmentManager fm       = getSupportFragmentManager();
                // You can find Fragments just like you would with a View by using FragmentManager.
                android.support.v4.app.Fragment fragment = fm.findFragmentById(R.id.fragmentCommentContent); 
                LayoutInflater inflater = (LayoutInflater)   getApplicationContext().getSystemService(getApplicationContext().LAYOUT_INFLATER_SERVICE);
                View child = inflater.inflate(R.layout.comments_list_item, null);


            LinearLayout ll = (LinearLayout)fragment.getView().findViewById(R.id.commentFragmentLayout);
            TextView    newText  = (TextView) child.findViewById(R.id.commentText);
            newText.setText("Important text");
            ll.addView(newText);

私はそれを試して得ました:指定された子にはすでに親があります。最初に子の親で removeView() を呼び出します。問題は、ビューの削除を呼び出すと、レイアウトに挿入した以前のデータが失われることです。

4

3 に答える 3

1

あなたが投稿したコードは意味がありません。LinearLayoutフラグメントからid を使用しての親を取得し、R.id.commentFragmentその親で a を検索してTextViewテキストを設定し、親をそれ自体に追加します。

私は非常に単純な疑問を持っています。ビューを取得し、別のビューを追加して更新するにはどうすればよいですか?

Viewでフラグメントの を取得しgetView()ます。によって返されたビューで目的のコンポーネントを検索し、getView()目的のビューをそのコンテナーに追加します。

LinearLayout ll = (LinearLayout)fragment.getView().findViewById(R.id.commentFragmentLayout);
TextView newText = new TextView(context);
newText.setText("Important text");
ll.addView(newText);

基本的に、すでにデータを持っているlinearlayoutを膨らませ、フラグメントを追加するメインアクティビティにビューを追加したいと考えています。

既に存在するビューではなく、レイアウト ファイルを膨張させます。ここであなたが何を望んでいるのか本当に理解できません。もっとよく説明してみてください。

于 2012-08-30T11:01:30.543 に答える
0
 LayoutParams params =new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);
        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);
于 2012-08-30T12:33:20.497 に答える
0
 lay=(LinearLayout)rootView.findViewById(R.id.Lay);
 lay.addView(yourView);
于 2014-08-10T15:58:31.923 に答える