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;
}}
誰かが私を助けてくれることを願っています。前もって感謝します。