一个简单的android升级问题开发问题求解答

打算用一个把sd卡上读取出的文件用九宫格显示
这个是错误提示:
Caused by: java.lang.IllegalStateException: System services not available to Activities before onCreate()
at android.app.Activity.getSystemService(Activity.java:3995)
at android.widget.SimpleAdapter.&init&(SimpleAdapter.java:85)
at com.sng.assist.SDfielname.inflateListView(SDfielname.java:107)
at com.sng.assist.SDfielname.C(SDfielname.java:49)
at com.example.d_fielio.historyimage.onCreate(historyimage.java:47)
这是java文件;
public class SDfielname extends Activity{
// ListAdapter imageView = new ImageAdapter(this);
private File[] currentF
List&Map&String, Object&& listI
&&& // 记录当前的父文件夹&
&&& private File currentP&
&&& private GridView gridV&
&&& public String[] fielnames = new String[100];
&&& SimpleA
&&& Boolean isfolder =
&&&
&&& pu
&&& protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.historyimage);&
&&& public void C() {&&&&
&&& // 记录当前路径下的所有文件的文件数组&
&&&&&& //& 为gridView的列表项的单击事件绑定监听器&&&&
File root = new File("/mnt/sdcard/txt/");&
&&&&&&& // 如果SD卡存在&
&&&&&&& if (root.exists()) {&
&&&&&&&&&&& currentParent =&
&&&&&&&&&&& currentFiles = root.listFiles();&
&&&&&&&&&&& // 使用当前目录下的全部文件、文件夹来填充ListView&
&&&&&&&&&&& inflateListView(currentFiles);&
&&&&&&&&&&& //getfilename();
&&&&&&& }&
&&&&&&& this.gridView = (GridView)this.findViewById(R.id.MyGridViews);
&&&&&&& // 为ListView的列表项的单击事件绑定监听器&
&&&&&&& gridView.setOnItemClickListener(new OnItemClickListener() {&
&&&&&&&&&&& @Override&
&&&&&&&&&&& public void onItemClick(AdapterView&?& arg0, View arg1,&
&&&&&&&&&&&&&&&&&&& int position, long arg3) {&
&&&&&&&&&&&&&&& // 用户单击了文件,直接返回,不作任何处理&
&&&&&&&&&&&&&&& if (currentFiles[position].isFile()){
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&
Toast.makeText(SDfielname.this, "TXT文件",&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Toast.LENGTH_LONG).show();
&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&& // 获取用户点击的文件夹下的所有文件&
&&&&&&&&&&&&&&& File[] tmp = currentFiles[position].listFiles();&
&&&&&&&&&&&&&&& if (tmp == null || tmp.length == 0) {&
&&&&&&&&&&&&&&&&&&& Toast.makeText(SDfielname.this, "当前路径不可访问或该路径下没有文件",&
&&&&&&&&&&&&&&&&&&&&&&&&&&& Toast.LENGTH_LONG).show();&
&&&&&&&&&&&&&&& } else {&
&&&&&&&&&&&&&&&&&&& // 获取用户单击的列表项对应的文件夹,设为当前的父文件夹&
&&&&&&&&&&&&&&&&&&& currentParent = currentFiles[position];&
&&&&&&&&&&&&&&&&&&& // 保存当前的父文件夹内的全部文件和文件夹&
&&&&&&&&&&&&&&&&&&& currentFiles =&
&&&&&&&&&&&&&&&&&&& // 再次更新ListView&
&&&&&&&&&&&&&&&&&&& inflateListView(currentFiles);&
&&&&&&&&&&&&&&& }&
&&&&&&&&&&& }&
&&&&&&& });&
&&& public String[] inflateListView(File[] files) {&
&&&&&&& // 创建一个List集合,List集合的元素是Map&
String[] names =
&&&&&&&& listItems = new ArrayList&Map&String, Object&&();&
&&&&&&&& for (int i = 0; i & files. i++) {&
&&&&&&&&&&& Map&String, Object& listItem = new HashMap&String, Object&();&
&&&&&&&&&&& // 如果当前File是文件夹,使用folder图标;否则使用file图标&
&&&&&&&&&&& if (files[i].isDirectory()) {&
&&&&&&&&&&&
&&&&&&&&&&&
this.isfolder =
&&&&&&&&&&&&&& // listItem.put("icon","1");&
&&&&&&&&&&& } else {&
&&&&&&&&&&&&&& //& listItem.put("icon", "2");&
&&&&&&&&&&&
this.isfolder =
&&&&&&&&&&& }&
&&&&&&&&&&& listItem.put("fileName", files[i].getName());
&&&&&&&&&&& this.fielnames[i] = files[i].getName();&&&&&&
&&&&&&&&&&& // 添加List项&
&&&&&&&&&&& listItems.add(listItem);&
&&&&&&& }&
&&&&&&& // 创建一个SimpleAdapter
&&&&&&&& SimpleAdapter adapter = new SimpleAdapter(this, listItems,&
&&&&&&&&&&&&&&&& R.layout.list_content, new String[] { "icon", "fileName" },&
&&&&&&&&&&&&&&&& new int[] { R.id.list_content_iv, R.id.list_content_tv });&
&&&&&&&& // 为ListView设置Adapter&
&&&&&&&& gridView.setAdapter(adapter);
&&&&&&& try {&
&&&&&&& } catch (Exception e) {&
&&&&&&&&&&& e.printStackTrace();&
&&&&&&& }&
&&&&&&& this.fielslength = files.
MyImageButton historyImage = new MyImageButton(this, R.drawable.ic_launcher, R.string.historyImage);
historyImage.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(MainActivity.this, historyimage.class);
MainActivity.this.startActivity(intent);
buttonlayout.addView(historyImage);
Caused by: java.lang.IllegalStateException: System services not available to Activities before onCreate()
at android.app.Activity.getSystemService(Activity.java:3995)
at android.widget.SimpleAdapter.&init&(SimpleAdapter.java:85)
at com.sng.assist.SDfielname.inflateListView(SDfielname.java:107)
at com.sng.assist.SDfielname.C(SDfielname.java:49)
at com.example.d_fielio.historyimage.onCreate(historyimage.java:47)
看出错提示:historyimage调用了SDfielname实例中的方法造成的把。这个是否已经SDfielname实例化或者是否已经有Context可以使用,请检查下这个。
已解决问题
未解决问题查看: 527|回复: 7
有一个比较奇怪的需求,求解答~
该用户从未签到主题帖子e币
最近要做一个APP iOS版本的Android版本,其中有一个界面需要有很多气泡在界面上根据重力感应飘动,气泡的多少是根据后台的数据随机生成的,而且点击相应的气泡会动画消失或者跳转到相应的界面,iOS那边是用Box2D来做,找了一下大概的资料还有ANDROID上的游戏引擎,感觉在ANDROID上还挺难办的,想请教一下大牛们有没有比较简单的实现办法。
好像在ROM之家的一些rom里面的开机有这个界面。这个应该可以用FrameLayout来做。每个气泡的漂移都可以有重力感应来确定方向,其他的移动速度自己看的办。移动用scrollto 或scrollby,但是气泡边界怎么才能不被碰撞到,也就是距离检测好像用游戏引擎的比较容易实现。
该用户从未签到主题帖子e币
好像在ROM之家的一些rom里面的开机有这个界面。这个应该可以用FrameLayout来做。每个气泡的漂移都可以有重力感应来确定方向,其他的移动速度自己看的办。移动用scrollto 或scrollby,但是气泡边界怎么才能不被碰撞到,也就是距离检测好像用游戏引擎的比较容易实现。
3Q,因为界面会太复杂,所以可能最后还是得用COCOS2D和BOX2D来实现了。。。~&
签到天数: 1 天连续签到: 1 天[LV.1]初来乍到主题帖子e币
android&&调用c++引擎.
签到天数: 51 天连续签到: 2 天[LV.5]常住居民I主题帖子e币
你的重力感应是随着手机晃动而动吗?这个可以用动画来实现
该用户从未签到主题帖子e币
android中照样有box2d版本的移植啊,你对照以前的代码写就好了.
该用户从未签到主题帖子e币
游戏开发了,厉害!
该用户从未签到主题帖子e币
实际上还是用引擎简单些
该用户从未签到主题帖子e币
好像在ROM之家的一些rom里面的开机有这个界面。这个应该可以用FrameLayout来做。每个气泡的漂移都可以有重 ...
3Q,因为界面会太复杂,所以可能最后还是得用COCOS2D和BOX2D来实现了。。。~
圣诞限量勋章
圣诞限量勋章
QQ已认证,此人靠谱
社区认证会员
社区认证会员
社区贡献者
eoeAndriod社区贡献网友
推荐阅读热门话题
61089808782415413408331315309242199191189188715
1&小时前1&小时前1&小时前1&小时前1&小时前1&小时前2&小时前2&小时前2&小时前昨天&23:59昨天&23:57昨天&23:51昨天&23:49昨天&23:45昨天&23:45昨天&23:44
特别关注 /3
国内首个纯线上Android保就业学习班,一线技术大牛担任讲师,企业级全实战任务进阶,限时招生,9月21日开班==>打架报名中!
又到开学季!极客学院准备了多重好礼等你来拿!
心动不如行动!速来领取!
想学Android开发,但没有Java基础?Java体系庞大,不知道从哪学起?专门针对Android开发所需的Java基础教程,学这些,就够了!
Powered by
扫一扫 关注eoe官方微信Android开发中的一个简单的问题_百度知道
Android开发中的一个简单的问题
package com.example.import android.support.v7.app.ActionBarAimport android.os.Bimport android.view.Mimport android.view.MenuIimport android.widget.TextVpublic class MainActivity extends ActionBarActivity { @Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) {
// I this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu); }
public void clickHandler(View source) {
//这一行提示错误View cannot be resolved to a type
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.TextView tv=(TextView)findViewById(R.id.show); //提示错误show cannot be resolved or is not a field
tv.setText(&Hello Android=&+new java.util.Date());
}那两处错误应该怎么改
提示错误View cannot be resolved to a type,你是不是在R.layout.activity_main布局文件button控件加了onclick属性提示错误show cannot be resolved or is not a field
也是布局文件问题,你贴下布局文件 懂的进
其他类似问题
为您推荐:
android开发的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁当前访客身份:游客 [
当前位置:
如题,下面贴报错地方的代码
public void setAdapter(PagerAdapter adapter) {
if (mAdapter != null) {
VerticalViewPagerCompat.setDataSetObserver(mAdapter, null);
mAdapter =
if (mAdapter != null) {
if (mObserver == null) {
mObserver = new DataSetObserver();
VerticalViewPagerCompat.setDataSetObserver(mAdapter, mObserver);
mPopulatePending =
if (mRestoredCurItem &= 0) {
mAdapter.restoreState(mRestoredAdapterState,
mRestoredClassLoader);
setCurrentItemInternal(mRestoredCurItem, false, true);
mRestoredCurItem = -1;
mRestoredAdapterState =
mRestoredClassLoader =
populate();
mObserver = new DataSetObserver();
会提示 ClassNotFound,找不到这个DataSetObserver类,但是我在同一个文件中,自己新建了个这个类,代码如下
private class DataSetObserver implements
VerticalViewPagerCompat.DataSetObserver {
public void onDataSetChanged() {
dataSetChanged();
很疑惑,求解答
共有5个答案
<span class="a_vote_num" id="a_vote_num_
DataSetObserver 已经在 /frameworks/base/core/java/android/database/DataSetObserver.java 定义了。
check 下 你 import,应该是import的问题,
建议你的更改类名
<span class="a_vote_num" id="a_vote_num_
引用来自“purplechen”的答案 DataSetObserver 已经在 /frameworks/base/core/java/android/database/DataSetObserver.java 定义了。
check 下 你 import,应该是import的问题,
建议你的更改类名 但是 这个类 是 在 VerticalViewPagerCompat 中 &定义的一个 继承
PagerAdapter.DataSetObserver 的接口
package android.support.v4.
public final class VerticalViewPagerCompat {
& & private VerticalViewPagerCompat() {}
& & public interface DataSetObserver extends PagerAdapter.DataSetObserver {
void onDataSetChanged();}
& & public static void setDataSetObserver(PagerAdapter adapter, DataSetObserver observer) {
& & & & adapter.setDataSetObserver(observer);
<span class="a_vote_num" id="a_vote_num_
自己顶一下 闹不清楚这个 为什么。。
<span class="a_vote_num" id="a_vote_num_
引用来自“没品程序猿”的答案引用来自“purplechen”的答案 DataSetObserver 已经在 /frameworks/base/core/java/android/database/DataSetObserver.java 定义了。
check 下 你 import,应该是import的问题,
建议你的更改类名 但是 这个类 是 在 VerticalViewPagerCompat 中 &定义的一个 继承
PagerAdapter.DataSetObserver 的接口
package android.support.v4.
public final class VerticalViewPagerCompat {
& & private VerticalViewPagerCompat() {}
& & public interface DataSetObserver extends PagerAdapter.DataSetObserver {
void onDataSetChanged();}
& & public static void setDataSetObserver(PagerAdapter adapter, DataSetObserver observer) {
& & & & adapter.setDataSetObserver(observer);
把你的import贴一下吧
<span class="a_vote_num" id="a_vote_num_
引用来自“purplechen”的答案引用来自“没品程序猿”的答案引用来自“purplechen”的答案 DataSetObserver 已经在 /frameworks/base/core/java/android/database/DataSetObserver.java 定义了。
check 下 你 import,应该是import的问题,
建议你的更改类名 但是 这个类 是 在 VerticalViewPagerCompat 中 &定义的一个 继承
PagerAdapter.DataSetObserver 的接口
package android.support.v4.
public final class VerticalViewPagerCompat {
& & private VerticalViewPagerCompat() {}
& & public interface DataSetObserver extends PagerAdapter.DataSetObserver {
void onDataSetChanged();}
& & public static void setDataSetObserver(PagerAdapter adapter, DataSetObserver observer) {
& & & & adapter.setDataSetObserver(observer);
把你的import贴一下吧
import java.util.ArrayL
import android.content.C
import android.os.B
import android.os.P
import android.os.P
import android.os.V
import android.support.v4.os.ParcelableC
import android.support.v4.os.ParcelableCompatCreatorC
import android.support.v4.view.MotionEventC
import android.support.v4.view.PagerA
import android.support.v4.view.VelocityTrackerC
import android.support.v4.view.VerticalViewPagerC
import android.support.v4.view.ViewConfigurationC
import android.support.v4.view.ViewP
import android.util.AttributeS
import android.util.L
import android.view.MotionE
import android.view.VelocityT
import android.view.V
import android.view.ViewC
import android.view.ViewG
import android.widget.S
import android.widget.T
我查了下 好像更新了新版本的API以后 &PagerAdapter中的 DataSetObserver 好像不可见了
报的错都是 PagerAdapter.DataSetObserver cannot be solved ……
更多开发者职位上
有什么技术问题吗?
没品程序猿的其他问题
类似的话题}

我要回帖

更多关于 android 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信