我剛剛創建菜單這樣的底欄如何findViewById一個圖標菜單
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/bb_menu_recents"
android:icon="@drawable/floor"
android:title="Floor 1" />
<item
android:id="@+id/floorNumber"
android:icon="@drawable/floor"
android:title="Floor 2" />
<item
android:id="@+id/bb_menu_nearby"
android:icon="@drawable/floor"
android:title="Others" />
</menu>
,也創造了一個getter和setter類適配器類,我還創建了一個適配器的持有者和這是我的適配器類
package abtech.waiteriano.com.waitrer.adapters;
import android.app.Activity;
import android.content.Context;
import android.support.annotation.NonNull;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
import abtech.waiteriano.com.waitrer.R;
import abtech.waiteriano.com.waitrer.getters_and_setters.BottomBarItem;
/**
* Created by dell on 2/27/2017.
*/
public class CustomBottomBarAdapter extends ArrayAdapter<BottomBarItem> {
Context context;
int layoutResourceId;
ArrayList<BottomBarItem> data = new ArrayList<BottomBarItem>();
public CustomBottomBarAdapter(Context context, int layoutResourceId, ArrayList<BottomBarItem>data) {
super(context, layoutResourceId,data);
this.layoutResourceId = layoutResourceId;
this.context = context;
this.data = data;
}
@NonNull
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
floorRecordHolder floorHolder = null;
if (row == null){
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
floorHolder = new floorRecordHolder();
floorHolder.floorNo = (TextView)row.findViewById(R.id.floorNumber);
}else {
floorHolder = (CustomBottomBarAdapter.floorRecordHolder) row.getTag();
}
BottomBarItem bottomBarItem = data.get(position);
floorHolder.floorNo.setText(bottomBarItem.getFloorNo());
return row;
}
static class floorRecordHolder{
TextView floorNo;
ImageView floorImage;
}
}
這是活動代碼
我只是想設置圖標,在菜單像我設置文本,這也是在這樣
01菜單package abtech.waiteriano.com.waitrer;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
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.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import com.roughike.bottombar.BottomBar;
import java.util.ArrayList;
import java.util.List;
import abtech.waiteriano.com.waitrer.adapters.CustomBottomBarAdapter;
import abtech.waiteriano.com.waitrer.fragments.TablesFragment;
import abtech.waiteriano.com.waitrer.getters_and_setters.BottomBarItem;
public class TabsActivity extends AppCompatActivity {
private Toolbar toolbar;
private TabLayout tabLayout;
private ViewPager viewPager;
private BottomBar mBottomBar;
CustomBottomBarAdapter customBottomBarAdapter;
ArrayList<BottomBarItem> bottomBarArray = new ArrayList<BottomBarItem>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tabs);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
mBottomBar = BottomBar.attach(this, savedInstanceState);
mBottomBar.setItems(R.menu.bottombar_menu);
customBottomBarAdapter = new CustomBottomBarAdapter(this,R.menu.bottombar_menu,bottomBarArray);
viewPager = (ViewPager) findViewById(R.id.viewpager);
/**
* Initializing the viewpager with fragments
*/
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new TablesFragment(), "Progress");
adapter.addFragment(MyFragment.newInstance("Example1"), "Example1");
adapter.addFragment(MyFragment.newInstance("Example2"), "Example2");
adapter.addFragment(MyFragment.newInstance("Example3"), "Example3");
viewPager.setAdapter(adapter);
tabLayout = (TabLayout) findViewById(R.id.tabs);
//adding viewpager to the tablayout
tabLayout.setupWithViewPager(viewPager);
tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
}
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
}
floorHolder.floorNo = (TextView)row.findViewById(R.id.floorNumber);
但圖標不是TextView的,如果任何事情不清楚,請只是通知我對不起不好英語
哪裏有底部欄的MenuInflater?我不認爲ArrayAdapter是你需要在這裏 –
我剛剛創建了一個網格視圖像這樣只有一個項目,並使這個重複在數據庫中與選擇表單,我需要的所有我想要創建一個底部欄像我創建了一個網格視圖,我只是通過創建一個getter和setter類以及一個適配器類來實現網格視圖@ cricket_007 – 7arooney
我在您的問題中看不到網格視圖。你有一個菜單XML,並用MenuInflater加載...你設置文本和圖標從一個MenuInflater,而不是一個ArrayAdapter –