में ग्रिडव्यू के साथ एंड्रॉइड छवि एडाप्टर मेरे पास ग्रिडव्यू वाला एडाप्टर है जो एक गतिविधि के रूप में काम करता है। मैं इसे अब एक टुकड़े में रखने की कोशिश कर रहा हूं और चीजों को परिवर्तित कर रहा हूं लेकिन यह काम नहीं करता है। जब मैं अपनी गतिविधि में IconFragmentSystem को शामिल करता हूं, तो जब मैं गतिविधि खोलने का प्रयास करता हूं तो मुझे एक बल बंद हो जाता है।फ्रैगमेंट
मुझे पता है कि गतिविधि काम करता है क्योंकि मैं अन्य टुकड़ों का उपयोग कर सकता हूं और सब ठीक है इसलिए मुझे पता है कि मेरी समस्या इस फ़ाइल में है।
package com.designrifts.ultimatethemeui;
import com.designrifts.ultimatethemeui.R;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.*;
import java.util.ArrayList;
public class IconFragmentSystem extends Fragment implements AdapterView.OnItemClickListener{
private static final String RESULT_OK = null;
public Uri CONTENT_URI;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.main, container, false);
super.onCreate(savedInstanceState);
int iconSize=getResources().getDimensionPixelSize(android.R.dimen.app_icon_size);
GridView gridview = (GridView) getActivity().findViewById(R.id.icon_grid);
gridview.setAdapter(new IconAdapter(this, iconSize));
gridview.setOnItemClickListener(this);
CONTENT_URI=Uri.parse("content://"+iconsProvider.class.getCanonicalName());
return view;
}
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
String icon=adapterView.getItemAtPosition(i).toString();
Intent result = new Intent(null, Uri.withAppendedPath(CONTENT_URI,icon));
setResult(RESULT_OK, result);
finish();
}
private void setResult(String resultOk, Intent result) {
// TODO Auto-generated method stub
}
private void finish() {
// TODO Auto-generated method stub
}
private class IconAdapter extends BaseAdapter{
private Context mContext;
private int mIconSize;
public IconAdapter(Context mContext, int iconsize) {
super();
this.mContext = mContext;
this.mIconSize = iconsize;
loadIcon();
}
public IconAdapter(IconFragmentSystem iconssystem, int iconSize) {
// TODO Auto-generated constructor stub
}
@Override
public int getCount() {
return mThumbs.size();
}
@Override
public Object getItem(int position) {
return mThumbs.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) {
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(mIconSize, mIconSize));
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(mThumbs.get(position));
return imageView;
}
private ArrayList<Integer> mThumbs;
////////////////////////////////////////////////
private void loadIcon() {
mThumbs = new ArrayList<Integer>();
final Resources resources = getResources();
final String packageName = getActivity().getApplication().getPackageName();
addIcon(resources, packageName, R.array.systemicons);
}
private void addIcon(Resources resources, String packageName, int list) {
final String[] extras = resources.getStringArray(list);
for (String extra : extras) {
int res = resources.getIdentifier(extra, "drawable", packageName);
if (res != 0) {
final int thumbRes = resources.getIdentifier(extra,"drawable", packageName);
if (thumbRes != 0) {
mThumbs.add(thumbRes);
}
}
}
}
}
}
मैं इस लागू करने के लिए अलग अलग तरीकों की कोशिश की है, लेकिन सभी नाकाम रहे हैं और मैं वास्तव में मुझे सही दिशा में इशारा करते हुए सहायता की आवश्यकता हो। एक
इस लेआउट में मेरी एक्सएमएल है
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<GridView
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnWidth="90dp"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
android:gravity="center"
/>
</RelativeLayout>
लॉगकाट को इसके बारे में क्या कहना है? –
@ रे Stojonic जब मैं logcat चलाता है यह मुझे 'कोड' देता है 10-06 1 9: 10: 27.450: ई/एंड्रॉइड रनटाइम (10180): अंतिम अपवाद: मुख्य 10-06 19: 10: 27.450: ई/एंड्रॉइड रनटाइम (10180) : java.lang.NullPointerException 10-06 1 9: 10: 27.450: ई/एंड्रॉइड रनटाइम (10180): \t com.designrifts.ultimatethemeui.IconFragmentSystem.onCreateView (IconFragmentSystem.java:28) तो मुझे पता है कि यह ऑनक्रेट व्यू से है। मैंने उदाहरणों को देखा और एंड्रॉइड साइट को पढ़ा लेकिन कोई भाग्य नहीं मिला। –