0
我想在圖像和文本的Android Studio中創建一個gridview。我找到了一些解決方案,但是它們只針對單個活動,而不針對具有片段的活動。我可以使用以下代碼在網格中填充文本。但我也想要圖像。向圖像和文本添加gridview
我該怎麼辦?我在android開發方面有一點經驗,我需要在2個星期後提交這個項目。我已經評論了一些可能的解決方案,但他們甚至都不工作。請檢查整個代碼。
這是我的佔位符片段的主要活動。
public static class PlaceholderFragment extends Fragment {
private ArrayAdapter<String> gridAdapter;
//gridView gridAdapter;
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
final String[] mainMenuArray = {
"Create a new class",
"Take Attendance",
"Check Up Status",
"Update/Modify Students",
"Delete/Update class",
"Add students"
} ;
int[] imageId = {
R.mipmap.ic_launcher,
R.mipmap.ic_launcher,
};
List<String> mainMenu = new ArrayList<String>(Arrays.asList(mainMenuArray));
// gridAdapter = new gridView(getActivity(), mainMenuArray, imageId);
gridAdapter =
new ArrayAdapter<String>(
getActivity(), // The current context (this activity)
R.layout.grid_items, // The name of the layout ID.
R.id.grid_text, // The ID of the textview to populate.
mainMenuArray);
GridView grid;
//gridView gridAdapter = new gridView(getActivity(), mainMenuArray, imageId);
grid=(GridView)rootView.findViewById(R.id.grid);
grid.setAdapter(gridAdapter);
grid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(getActivity(), "You Clicked at " + mainMenuArray[+position], Toast.LENGTH_SHORT).show();
}
});
return rootView;
}
}
並用於適配器。
public class gridView extends BaseAdapter{
private Context mContext;
private final String[] mainMenuArray;
private final int[] Imageid;
public gridView(Context c,String[] mainMenuArray,int[] Imageid) {
mContext = c;
this.Imageid = Imageid;
this.mainMenuArray = mainMenuArray;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mainMenuArray.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View grid;
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
grid = new View(mContext);
grid = inflater.inflate(R.layout.grid_items, null);
TextView textView = (TextView) grid.findViewById(R.id.grid_text);
ImageView imageView = (ImageView)grid.findViewById(R.id.grid_image);
textView.setText(mainMenuArray[position]);
imageView.setImageResource(Imageid[position]);
} else {
grid = (View) convertView;
}
return grid;
}
}
它的工作原理。非常感謝。 – 2015-04-03 09:43:41