Android 在选项卡布局中添加gridview
我想在我当前项目的选项卡布局中添加gridview布局有什么方法可以添加它,或者用我当前的代码将其放大 这是我当前的mainactivity.java:Android 在选项卡布局中添加gridview,android,eclipse,android-gridview,Android,Eclipse,Android Gridview,我想在我当前项目的选项卡布局中添加gridview布局有什么方法可以添加它,或者用我当前的代码将其放大 这是我当前的mainactivity.java: package id.WKKR.ktcafe; import tabs.SlidingTabLayout; import android.content.Intent; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.sup
package id.WKKR.ktcafe;
import tabs.SlidingTabLayout;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.ActionBarActivity;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.GridView;
import android.widget.TextView;
import android.widget.Toast;
import android.support.v7.widget.Toolbar;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.style.ImageSpan;
@
SuppressWarnings("deprecation")
public class MenuUtama extends ActionBarActivity {
GridView myGridView;
Toolbar toolbar;
private ViewPager mPager;
private SlidingTabLayout mTabs;@
Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu_utama);
toolbar = (Toolbar) findViewById(R.id.app_bar);
setSupportActionBar(toolbar);
getSupportActionBar().setHomeButtonEnabled(true);
NavDrawerFragment drawerFragment = (NavDrawerFragment) getSupportFragmentManager().findFragmentById(R.id.fragment_navigation_drawer);
drawerFragment.setUp(R.id.fragment_navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout), toolbar);
mPager = (ViewPager) findViewById(R.id.MyPager);
mPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));
mTabs = (SlidingTabLayout) findViewById(R.id.MyTabs);
mTabs.setDistributeEvenly(true);
mTabs.setCustomTabView(R.layout.custom_tab_view, R.id.tabsText);
mTabs.setBackgroundColor(getResources().getColor(R.color.orange));
mTabs.setSelectedIndicatorColors(getResources().getColor(R.color.brown));
mTabs.setViewPager(mPager);
}
@
Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_utama, menu);
return true;
}
@
Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
Toast.makeText(this, "This Is " + item.getTitle() + " Button", Toast.LENGTH_SHORT).show();
return true;
}
if (id == R.id.bill) {
startActivity(new Intent(this, BillTagihanAnda.class));
}
if (id == R.id.pesanan) {
startActivity(new Intent(this, DaftarPesananAnda.class));
}
if (id == R.id.callwaiter) {
startActivity(new Intent(this, PanggilPelayan.class));
finish();
}
return super.onOptionsItemSelected(item);
}
class MyPagerAdapter extends FragmentPagerAdapter {
int icon[] = {
R.drawable.ic_food, R.drawable.ic_drink, R.drawable.ic_desserts
};
String[] tabsText = getResources().getStringArray(R.array.tabs);
public MyPagerAdapter(FragmentManager fm) {
super(fm);
tabsText = getResources().getStringArray(R.array.tabs);
}
@
Override
public Fragment getItem(int position) {
MyFragment myFragment = MyFragment.getInstance(position);
return myFragment;
}
@
Override
public CharSequence getPageTitle(int position) {
Drawable drawable = getResources().getDrawable(icon[position]);
drawable.setBounds(0, 0, 40, 40);
ImageSpan imageSpan = new ImageSpan(drawable);
SpannableString spannableString = new SpannableString(" ");
spannableString.setSpan(imageSpan, 0, spannableString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
return spannableString;
}
@
Override
public int getCount() {
return 3;
}
}
public static class MyFragment extends Fragment {
private TextView textView;
public static MyFragment getInstance(int position) {
MyFragment myFragment = new MyFragment();
Bundle args = new Bundle();
args.putInt("position", position);
myFragment.setArguments(args);
return myFragment;
}
@
Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View layout = inflater.inflate(R.layout.my_fragment, container, false);
textView = (TextView) layout.findViewById(R.id.position);
Bundle bundle = getArguments();
if (bundle != null) {
textView.setText("The Page Selected is " + bundle.getInt("position"));
}
return layout;
}
}
}
这就是选项卡布局的样子,它膨胀文本视图,显示数组中的当前位置
谢谢所有想帮忙的人
所以我已经添加了gridview,现在我正在尝试使用image和textview来扩展gridview,我使用的适配器看起来像这样,但老实说,我不知道如何使它工作:
公共静态类MyFragment扩展了Fragment{
私有文本视图文本视图;
私有GridView myGridView;
公共静态MyFragment getInstance(int位置){
MyFragment MyFragment=新的MyFragment();
Bundle args=新Bundle();
参数putInt(“位置”,位置);
myFragment.setArguments(args);
返回myFragment;
}
@
推翻
创建视图时的公共视图(LayoutFlater充气机、@Nullable ViewGroup容器、@Nullable Bundle savedInstanceState){
视图布局=充气机。充气(R.layout.my_碎片,容器,假);
textView=(textView)layout.findViewById(R.id.position);
myGridView=(GridView)layout.findviewbyd(R.id.GridView);
Bundle=getArguments();
if(bundle!=null){
textView.setText(“所选页面为”+bundle.getInt(“位置”));
}
返回布局;
}
}
类菜单{
int-imageId=0;
字符串菜单=”;
字符串menusPrices=“”;
菜单(int imageId、字符串菜单、字符串菜单价格){
this.imageId=imageId;
这个.菜单=菜单;
this.menusPrices=menusPrices;
}
}
//为gridview内容充气的适配器
类MyCafe扩展了BaseAdapter{
ArrayList<菜单>列表;
语境;
MyCafe(上下文){
this.context=上下文;
列表=新阵列列表<菜单>();
Resources res=context.getResources();
String[]tempMenusNames=res.getStringArray(R.array.food);
String[]tempMenusPrices=res.getStringArray(R.array.foodprices);
int[]菜单图像={
R.drawable.makanana,R.drawable.makananb,
R.drawable.makananc,R.drawable.makanand,
R.drawable.makanane,R.drawable.makananf
};
对于(int i=0;i<6;i++){
菜单TempMenu=新菜单(菜单图像[i]、TempMenuNames[i],
临时价格[i];
列表。添加(临时菜单);
}
}
public int getCount(){
//TODO自动生成的方法存根
返回list.size();
}
公共对象getItem(int i){
//TODO自动生成的方法存根
返回列表。获取(i);
}
公共长getItemId(int i){
//TODO自动生成的方法存根
返回i;
}
类视图持有者{
图像查看菜单;
text查看myMenusText;
TextView MyMenusPrice;
视图支架(视图v){
myMenus=(ImageView)v.findViewById(R.id.imageView1);
myMenusText=(TextView)v.findViewById(R.id.textView1);
MyMenuPrice=(TextView)v.findViewById(R.id.textView2);
}
}
公共视图getView(int i、视图视图、视图组视图组){
//TODO自动生成的方法存根
视图行=视图;
ViewHolder=null;
if(行==null){
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
row=充气机。充气(R.layout.single_项目,视图组,false);
支架=新的视图支架(行);
row.setTag(支架);
}否则{
holder=(ViewHolder)row.getTag();
}
菜单温度=列表获取(i);
holder.myMenus.setImageResource(temp.imageId);
holder.myMenusText.setText(临时菜单);
holder.MyMenusPrice.setText(temp.menusprice);
返回行;
}
}
在R.layout.my_片段中创建网格视图,并在片段中充气。
您也可以在寻呼机适配器中使用多个片段。这是否意味着如果我在my_fragment.xml中添加gridview,我也必须对gridview进行膨胀?不,您已经在膨胀视图了。您可以通过layout.findViewById(R.id.gridview)找到gridview的引用;你能看一下我编辑过的帖子吗?现在我正试图扩大gridview的内容,但无法使其正常工作