我的片段活动
public class MessagesFragment extends Fragment {
ListView lv_pdf;
public static ArrayList<File> fileList = new ArrayList<File>();
PPTAdapter obj_adapter;
public static int REQUEST_PERMISSIONS = 1;
boolean boolean_permission;
File dir;
public MessagesFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.search_via_mobile_ppt, container, false);
lv_pdf = (ListView) rootView.findViewById(R.id.lv_pdf);
init();
// Inflate the layout for this fragment
return rootView;
}
public void init() {
dir = new File(Environment.getExternalStorageDirectory().getAbsolutePath());
fn_permission();
lv_pdf.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
// Intent intent = new Intent(getApplicationContext(), PPt.class);
// intent.putExtra("position", i);
// startActivity(intent);
//
// Log.e("Position", i + "");
File file = new File(dir.toString());
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file),"application/vnd.ms-powerpoint");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
});
}
public ArrayList<File> getfile(File dir) {
File listFile[] = dir.listFiles();
if (listFile != null && listFile.length > 0) {
for (int i = 0; i < listFile.length; i++) {
if (listFile[i].isDirectory()) {
getfile(listFile[i]);
} else {
boolean booleanpdf = false;
if (listFile[i].getName().endsWith(".ppt")) {
for (int j = 0; j < fileList.size(); j++) {
if (fileList.get(j).getName().equals(listFile[i].getName())) {
booleanpdf = true;
} else {
}
}
if (booleanpdf) {
booleanpdf = false;
} else {
fileList.add(listFile[i]);
}
}
}
}
}
return fileList;
}
private void fn_permission() {
if ((ContextCompat.checkSelfPermission(getContext(), Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)) {
if ((ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), android.Manifest.permission.READ_EXTERNAL_STORAGE))) {
} else {
ActivityCompat.requestPermissions(getActivity(), new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE},
REQUEST_PERMISSIONS);
}
} else {
boolean_permission = true;
getfile(dir);
obj_adapter = new PPTAdapter(getContext(), fileList);
lv_pdf.setAdapter(obj_adapter);
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == REQUEST_PERMISSIONS) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
boolean_permission = true;
getfile(dir);
obj_adapter = new PPTAdapter(getContext(), fileList);
lv_pdf.setAdapter(obj_adapter);
} else {
Toast.makeText(getContext(), "Please allow the permission", Toast.LENGTH_LONG).show();
}
}
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
}
@Override
public void onDetach() {
super.onDetach();
}
}
我的适配器活动
public class PPTAdapter extends ArrayAdapter<File> {
Context context;
ViewHolder viewHolder;
ArrayList<File> al_pdf;
public PPTAdapter(Context context, ArrayList<File> al_pdf) {
super(context, R.layout.adapter_pdf, al_pdf);
this.context = context;
this.al_pdf = al_pdf;
}
@Override
public int getItemViewType(int position) {
return position;
}
@Override
public int getViewTypeCount() {
if (al_pdf.size() > 0) {
return al_pdf.size();
} else {
return 1;
}
}
@Override
public View getView(final int position, View view, ViewGroup parent) {
if (view == null) {
view = LayoutInflater.from(getContext()).inflate(R.layout.adapter_pdf, parent, false);
viewHolder = new ViewHolder();
viewHolder.tv_filename = (TextView) view.findViewById(R.id.tv_name);
view.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) view.getTag();
}
viewHolder.tv_filename.setText(al_pdf.get(position).getName());
return view;
}
public class ViewHolder {
TextView tv_filename;
}
}
我希望在我的PPT
中列出ListView
之后打开PPT
。ListView
的列表工作正常,但如何从{{1}的项目中打开它我陷入了这种境地。使用onitemclicklistener
的{{1}}中提到的代码。
我从here获得了一个PPT查看器库,但我不知道如何在Android Studio中使用它,就像在Ecllipse中一样。
答案 0 :(得分:1)
从此
更改代码intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
到
startActivity(intent);
这将显示用户有关他们已安装的任何电源点查看器的选项,他们可以选择一个。