2

私のアプリでは、Android開発者サイトの例のように、アクションバータブのナビゲーションモードに2つのフラグメントがあるアクティビティがあります。

私の最初のフラグメントには、リストビュー(独自のアダプターがあります)があり、リストビューの各項目には+1というボタンがあります。+1ボタンがクリックされた最初のフラグメントのリストビューのアイテムを表示する2番目のフラグメントを更新したいと思います。

私はインターフェースを使わなければならないことを知っています。しかし、私はそれらの使い方がわかりません。インターフェイスをどこで定義する必要がありますか?それの使い方?アクティビティからアクセスして2番目のフラグメントを更新する方法は?

迅速な支援があれば素晴らしいでしょう。ありがとう。

4

1 に答える 1

4

リストアイテムをクリックしたい場合はクリックしてください

フラグメントA:

public class FragmentA extends ListFragment {

OnItemSelectedListener mListener;

...
// Container Activity must implement this interface
public interface OnItemSelectedListener {
    public void onItemSelected(int position);
}
...

@Override
public void onAttach(Activity activity) {
    super.onAttach(activity);
    try {
        mListener = (OnItemSelectedListener) activity;
    } catch (ClassCastException e) {
        throw new ClassCastException(activity.toString() + " must implement OnItemSelectedListener");
    }
}

@Override
public void onListItemClick(ListView l, View v, int position, long id) {

    mCallback.onItemSelected(position);

    }   
}

ContainerActivity:

public class ContainerActivity extends FragmentActivity 
    implements FragmentA.OnItemSelectedListener
{

//...



public void onItemSelected(int Position/*pass anything which u want*/) 
    {

        SecondFragment second_fragment = (SecondFragment) getSupportFragmentManager().findFragmentById(R.id.fragmentB);

        if(second_fragment !=null)
        {
            second_fragment.UpdateUI(Position); 
        }

    }


 }

2番目のフラグメント:

public class SecondFragment extends Fragment {

    ...
    public void UpdateUI(Position)
    {

    }

}

お役に立てれば。各リストアイテム内のボタンをクリックするのは少し難しいかもしれませんが、同じアプローチを試してください。インターフェイス宣言を記述して、カスタムアダプタを呼び出す必要があるかもしれません。

于 2013-03-08T14:32:40.140 に答える