我有叫了两个片段WiFiChatFragment,另一个是AboutUsFrag 所以,我想从WiFiChatFragment而是从溢出菜单项我已经执行调用AboutUsFrag但在替代方法 这里给出的错误是我WiFiChatFragment代码片段从片段
public class WiFiChatFragment extends Fragment {
private View view;
private ChatManager chatManager;
private TextView chatLine;
private ListView listView;
public Animation hyperspaceJump;
public AboutUsFrag fragment=null;
public static final String TAG = "Settings";
ChatMessageAdapter adapter = null;
private List<String> items = new ArrayList<String>();
Context context;
private FragmentTransaction ft;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_chat, container, false);
chatLine = (TextView) view.findViewById(R.id.txtChatLine);
listView = (ListView) view.findViewById(android.R.id.list);
hyperspaceJump = AnimationUtils.loadAnimation(getActivity(), R.anim.animation_leave);
chatLine.startAnimation(hyperspaceJump);
setHasOptionsMenu(true);
adapter = new ChatMessageAdapter(getActivity(), android.R.id.text1,
items);
listView.setAdapter(adapter);
view.findViewById(R.id.btn_send).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View arg0) {
if (chatManager != null) {
chatManager.write(chatLine.getText().toString()
.getBytes());
pushMessage("Me: " + chatLine.getText().toString());
chatLine.setText("");
//chatLine.clearFocus();
}
}
});
return view;
}
public interface MessageTarget {
public Handler getHandler();
}
public void setChatManager(ChatManager obj) {
chatManager = obj;
}
public void pushMessage(String readMessage) {
adapter.add(readMessage);
adapter.notifyDataSetChanged();
}
/**
* ArrayAdapter to manage chat messages.
*/
public class ChatMessageAdapter extends ArrayAdapter<String> {
List<String> messages = null;
public ChatMessageAdapter(Context context, int textViewResourceId,
List<String> items) {
super(context, textViewResourceId, items);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater) getActivity()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(android.R.layout.simple_list_item_1, null);
}
String message = items.get(position);
if (message != null && !message.isEmpty()) {
TextView nameText = (TextView) v
.findViewById(android.R.id.text1);
if (nameText != null) {
nameText.setText(message);
if (message.startsWith("Me: ")) {
nameText.setBackgroundResource(R.drawable.out_message_bg);
nameText.setTextAppearance(getActivity(),
R.style.normalText);
} else {
nameText.setBackgroundResource(R.drawable.in_message_bg);
nameText.setTextAppearance(getActivity(),
R.style.boldText);
}
}
}
return v;
}
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
// TODO Auto-generated method stub
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu_main, menu);
}
public void replaceFragment(Fragment someFragment) {
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.about_frag, someFragment);
transaction.addToBackStack(null);
transaction.commit();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// handle item selection
switch (item.getItemId()) {
case R.id.action_settings:
// do s.th.
return true;
case R.id.clean:
adapter.clear();
return true;
case R.id.about_us:
fragment = new AboutUsFrag();
replaceFragment(fragment);
return true;
case R.id.rating:
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
,并呼吁AboutUsFrag
public class AboutUsFrag extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_about_us, container, false);
}
}
另一个类我如何能实现呢?
请告诉我在logcat中的错误。 –
它给出错误的替换方法它不接受片段 –
请直接从您的logcat发布错误。例如。什么是错误?什么是logcat告诉你? –