本来是多个activity来显示多个xml界面的
但现在的要求是 只用一个activity来接收
我想用参数来区分不同的xml界面 每次activity根据参数来显示你要显示的界面
这样怎么弄呢?求指导 急!!
但现在的要求是 只用一个activity来接收
我想用参数来区分不同的xml界面 每次activity根据参数来显示你要显示的界面
这样怎么弄呢?求指导 急!!
解决方案 »
- activity和tasks
- android怎样从byte[]字节数组中读取播放视频
- 话说用ndk创建的可执行程序(不是库)在sd卡上怎么没权限?
- 如何确保一个android应用程序只能在一部手机上运行?(禁止通过拷贝在其它手机上安装运行)
- android spinner
- Android 动画移动控件后,控件失去焦点,求求帮助!
- Android将联系人信息放到ListView时报空指针异常
- 两个TextView,我想水平各占屏幕的一半。如何改写布局?
- android api chm 查看 xml 属性
- 自定义广播没有作用
- android 混淆式开发(worklight+原生代码)如何实现代码混淆
- 关于蓝牙权限的问题
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;
} }
});
}能看看这段代码有什么问题吗?
Fragment的用法你搜一下,网上很多例子的。
setContentView(R.layout.submenu);
startActivityForResult(intent,1);
break;----->case 0:
setContentView(R.layout.submenu);
intent.putExtra(XX,1)
startActivityForResult(intent,1);
break;
类似这样的吧
启动MessageActivity前在intent里面塞相应的值.然后再在MessageActivity里面取值判断啊
定义一个Fragment类,在onCreateView方法里写View组件的操作,然后在Activity中new该Fragment对象,就可以将数据传入Fragment中,更新界面组件了
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();
}
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;
}