1

1 つのフラグメントに 2 つのフラグメントがあります。左と右のフラグメントにリストがあり、ListFragment に ListView を表示しています。ListView のリストをクリックすると、ListView の代わりに別のビューを表示する必要がありますが、左側のフラグメントはそこに残ります。

onclick イベントでは、インテントを実行していますが、ビュー全体が変化しています。むしろ、リスト ビューのみを変更する必要があります。

public class FriendsFragment  extends ListFragment{
  public static String[] friendsaddoptions=new String[]{
    "Fox User","FaceBook","Email","Twiter","SMS"
  };
  private Intent listIntent = null;
  ListView listview;
  Friends_Names_List_Adapter friendsnameslistadapter;
  JSONArray dataJsonObject;
  Button add;
  Button back;
  Game_Sections_Details_Adapter  GameSectionsDetails;
  View view;
  Context context = getActivity();
  @Override
  public View onCreateView(LayoutInflater inflater,  final ViewGroup container, Bundle savedInstanceState) {
    View view=inflater.inflate(R.layout.friends_list, container,false);
    listview=(ListView)view.findViewById(android.R.id.list);
    add=(Button) view.findViewById(R.id.button_add);
    back=(Button)view. findViewById(R.id.button_back);
    back.setVisibility(View.INVISIBLE);
    FriendsFragmentData dataobserver=new FriendsFragmentData();
    ServerManager.getInstance().addObserver(dataobserver);
    ServerManager.getInstance().readLoopForFriends_Names_List(AppConstances.Friends_Names_List);
    if(friendsnameslistadapter==null)
      friendsnameslistadapter=new Friends_Names_List_Adapter(getActivity(), new JSONArray());
    listview.setAdapter(friendsnameslistadapter);
    add.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) { /*Intent in=new
      Intent(getActivity().getBaseContext(), FriendsNamesAddActivity.class);
      startActivity(in);*/
      ArrayAdapter< String> adapter=new ArrayAdapter<String>(getActivity().getBaseContext(),
        R.layout.friends_add_listitem,R.id.friends_add_option,friendsaddoptions);
      listview.setAdapter(adapter);
      if(adapter!=null)
      back.setVisibility(View.VISIBLE);
      listview.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View view, int position, long id) {
          Intent intent = new Intent(getActivity().getBaseContext(),FoxUserActivity.class);
          startActivity(intent);
        }
      });
      if(adapter!=null) {
        add.setVisibility(View.INVISIBLE);
      }
    }
  });
  back.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
      listview.setAdapter(friendsnameslistadapter);
      add.setVisibility(View.VISIBLE);
      back.setVisibility(View.INVISIBLE);
    }
  });
  return view;
}

そして、このクラスは onclick の後に表示されます」

public class FoxUserActivity  extends FragmentActivity{
  public static TabHost tHost;
  Button add,back;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.foxuser);
    add=(Button) findViewById(R.id.button_add);
    back=(Button) findViewById(R.id.button_back);
    add.setVisibility(View.INVISIBLE);
    back.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        onBackPressed();
      }
    });
  }
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_game, menu);
    return true;
  }}

誰かが私を助けてくれることを願っています。前もって感謝します。

4

1 に答える 1