本来是多个activity来显示多个xml界面的
 但现在的要求是 只用一个activity来接收  
 
我想用参数来区分不同的xml界面  每次activity根据参数来显示你要显示的界面
 这样怎么弄呢?求指导  急!! 

解决方案 »

  1.   

    listView1.setOnItemClickListener(new OnItemClickListener() { @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,long id) 
    {
    Intent intent = new Intent(MenuActivity.this,MessageActivity.class);

    switch(position){

    case 0:
    setContentView(R.layout.submenu);
    startActivityForResult(intent,1);
    break;
    case 1:

    setContentView(R.layout.subenu);
    startActivityForResult(intent,2);
    break;
    case 3:

    setContentView(R.layout.submail);
    startActivityForResult(intent,4);
    break;
    } }
    });
    }能看看这段代码有什么问题吗?
      

  2.   

    用Fragment来做,不同的参数加载不同的Fragment。
    Fragment的用法你搜一下,网上很多例子的。
      

  3.   

    case 0:
    setContentView(R.layout.submenu);
    startActivityForResult(intent,1);
    break;----->case 0:
    setContentView(R.layout.submenu);
    intent.putExtra(XX,1)
    startActivityForResult(intent,1);
    break;
    类似这样的吧
      

  4.   

    怎么做啊?
    启动MessageActivity前在intent里面塞相应的值.然后再在MessageActivity里面取值判断啊
      

  5.   

    如果数据量大的话,利用Intent传递数据可能造成内存泄露,建议使用Fragment做,Tabhost也行,不过如果是大屏幕的设备,Android推荐使用Fragment进行界面切换;小设备的话,ActionBar结合Fragment一样可以实现导航功能,进行不同界面间的切换,Fragment很简单:
    定义一个Fragment类,在onCreateView方法里写View组件的操作,然后在Activity中new该Fragment对象,就可以将数据传入Fragment中,更新界面组件了
      

  6.   

    Activity里的部分方法
    package com.example.myddandroidclient;import java.util.ArrayList;import org.json.JSONArray;import android.app.ActionBar;
    import android.app.ActionBar.Tab;
    import android.app.Activity;
    import android.app.FragmentTransaction;
    import android.os.Bundle;import com.example.myddandroid_fragment.ShoppingCartListFragment;
    import com.example.myddandroid_fragment.ShoppingCartListFragment.Callbacks;/**
     * 这是一个ActionBar结合Fragment实现Tab导航的Activity,你可以使用老师以前提供的Tabhost进行实现该功能
     */
    public class GoodsListActivity extends Activity implements
    ActionBar.TabListener, Callbacks { static final String GOODS_LIST_ACTIVITY_ACTION = "com.example.my_ddandroidclient.action";
    private static final String SELECTED_ITEM = "selected_item"; private ActionBar actionBar;
    ShoppingCartListFragment fragment;
    private Bundle listJsonArray = new Bundle();
    private JSONArray jsonArray;
    private ArrayList<Bundle> listItem = new ArrayList<Bundle>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fragment_goods_list_activity); actionBar = getActionBar();
    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.setDisplayShowHomeEnabled(false); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    actionBar.addTab(actionBar.newTab().setText("商品列表")
    .setTabListener(this));
    actionBar.addTab(actionBar.newTab().setText("查找商品")
    .setTabListener(this));
    actionBar
    .addTab(actionBar.newTab().setText("购物车").setTabListener(this)); } /**
     * ActionBar.TabListener接口的方法
     */
    @Override
    public void onTabReselected(Tab tab, FragmentTransaction fragmentTransaction) {
    } @Override
    public void onTabSelected(Tab tab, FragmentTransaction fragmentTransaction) {
    fragment = new ShoppingCartListFragment();
    listJsonArray.putInt(ShoppingCartListFragment.SELECTED_ITEM, tab.getPosition());

    fragment.setArguments(listJsonArray);
    FragmentTransaction ft = getFragmentManager().beginTransaction();
    ft.replace(R.id.goods_detail, fragment);
    ft.commit();
    }
      

  7.   

    自定义的Fragment的部分方法:
    package com.example.myddandroid_fragment;import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.concurrent.Callable;
    import java.util.concurrent.FutureTask;import org.apache.http.HttpResponse;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;import android.app.Activity;
    import android.app.AlertDialog;
    import android.app.Fragment;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.ViewGroup;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemLongClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.ListView;
    import android.widget.SearchView;
    import android.widget.Toast;import com.example.myddandroid_adapter.BookDetailListAdapter;
    import com.example.myddandroid_adapter.CartDetailListAdapter;
    import com.example.myddandroid_adapter.SearchDetailListAdapter;
    import com.example.myddandroidclient.GoodsListActivity;
    import com.example.myddandroidclient.R;public class ShoppingCartListFragment extends Fragment implements
    SearchView.OnQueryTextListener { View view;
    ListView bookDetailList;
    ListView bookCartList;
    ListView bookSearchList;
    Button accept;
    Button delete;
    Button search;
    EditText searchEdit; public static final String SELECTED_ITEM = "selected_item"; private HttpClient httpClient;
    protected HttpGet get;
    protected HttpResponse response; private Callbacks callbacks; public interface Callbacks {
    public void onItemSelected(Bundle item); public void onCartItemSelected(int position); public void onCartDeleteButtonClick(); public void getJSONArray(JSONArray jsonArray);
    } @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    } @Override
    public void onAttach(Activity activity) {
    super.onAttach(activity);
    if (!(activity instanceof Callbacks)) {
    throw new IllegalStateException(
    "ShoppingCartListFragment所在的Activity必须实现Callbacks接口!");
    }
    callbacks = (Callbacks) activity;
    } @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {
    Bundle args = getArguments();
    int position = args.getInt(ShoppingCartListFragment.SELECTED_ITEM); if (position == 0) {
    View view = LayoutInflater.from(getActivity()).inflate(
    R.layout.goods__list, null);
    final ListView bookDetailList = (ListView) view
    .findViewById(R.id.goods_list);
    httpClient = new DefaultHttpClient();
    JSONArray jsonArray = null;
    if (args.getBundle("1") == null) {
    jsonArray = getJSONArray();
    callbacks.getJSONArray(jsonArray);
    GoodsListActivity goods = (GoodsListActivity) getActivity();
    goods.setJSONArray(jsonArray);
    } else {
    jsonArray = getJSONArrayFromBundle(args);
    try {
    System.out.println("JSONArray中的数据有——————》"
    + jsonArray.getJSONObject(1).getString(
    "bookDetailHead"));
    } catch (JSONException e) {
    e.printStackTrace();
    }
    } BookDetailListAdapter adapter = new BookDetailListAdapter(
    jsonArray, getActivity());
    bookDetailList.setAdapter(adapter); bookDetailList
    .setOnItemLongClickListener(new OnItemLongClickListener() {
    @Override
    public boolean onItemLongClick(AdapterView<?> parent,
    View view, int position, long id) {
    Bundle item = (Bundle) bookDetailList
    .getItemAtPosition(position);
    Toast.makeText(getActivity(), "加入购物车成功!",
    Toast.LENGTH_SHORT).show();
    callbacks.onItemSelected(item);
    return false;
    }
    });
    return view;
    } if (position == 1) {
    View view1 = inflater.inflate(R.layout.search_list, null);
    bookSearchList = (ListView) view1.findViewById(R.id.search_list);

    // bookSearchList.setTextFilterEnabled(true);不知道有什么用处
    SearchView sv = (SearchView) view1.findViewById(R.id.searchView);
    sv.setIconifiedByDefault(false);
    sv.setOnQueryTextListener(this);
    sv.setSubmitButtonEnabled(true);
    sv.setQueryHint("搜索书籍"); return view1;
    } if (position == 2) {
    View view2 = inflater.inflate(R.layout.cart__list, null);
    bookCartList = (ListView) view2.findViewById(R.id.cart_list);
    accept = (Button) view2.findViewById(R.id.accept);
    delete = (Button) view2.findViewById(R.id.delete); GoodsListActivity goods = (GoodsListActivity) getActivity();
    ArrayList<Bundle> listItem = goods.getListItem(); CartDetailListAdapter adapter = new CartDetailListAdapter(listItem,
    getActivity());
    bookCartList.setAdapter(adapter); bookCartList
    .setOnItemLongClickListener(new OnItemLongClickListener() { @Override
    public boolean onItemLongClick(AdapterView<?> parent,
    View view, int position, long id) {
    callbacks.onCartItemSelected(position);
    return false;
    }
    }); accept.setOnClickListener(new OnClickListener() { @Override
    public void onClick(View v) {
    double price = 0.0; AlertDialog.Builder builder = new AlertDialog.Builder(
    getActivity());
    builder.setTitle("确认支付")
    .setMessage("本次购物共需支付" + price + "元,点击确定转入支付页面……")
    .setPositiveButton("确定", null)
    .setNegativeButton("取消", null).create().show();
    }
    });
    delete.setOnClickListener(new OnClickListener() { @Override
    public void onClick(View v) {
    callbacks.onCartDeleteButtonClick();
    }
    });
    return view2;
    }
    return null;
    }
      

  8.   

    直接在一个xml中把所有的xml包含进来不就可以了你可以搜下 xml <include />的demo, 然后用view的gone和visiable属性来设置就可以了.如果还不明白的话,下载一个micode的开源代码 看下就明白了,不过这个有点代码量有点大,呵呵