我对android的AppWidget机器如何工作感到困惑.
我重新实现了AppWidgetProvider的构造函数,如下所示:
public class MyProvider extends AppWidgetProvider {
public MyProvider() {
Log.d("TEST", "Creating...")
}
public void onUpdate(..., int[] appWidgetIds) {
// updating stuff here
}
}
Run Code Online (Sandbox Code Playgroud)
从我在文档中读到的内容,我了解AppWidgetProvider实例化一次,当第一次添加该类型的widget时.如果添加了相同类型的另一个窗口小部件,则它将由该提供者进行管理.
但我刚刚发现事实并非如此!
对于我添加的每个小部件,android创建一个新的MyProvider(我从'adb logcat'看到它 - 它为每个小部件打印"Creating ...")!我没有理解为什么:)也许我弄错了?或者文档不清楚.如果每个提供商只管理一个小部件,那么将appWidgetIds传递给onUpdate和其他方法的原因是什么?
我需要将Activity更改为ListActivity.但是我无法启动我的项目...是否需要更改manifest.xml?
或者我如何将屏幕从Activity更改为ListActivity?有什么不同startActivity(new Intent(this, list.class))吗?
10-05 17:34:54.722: ERROR/AndroidRuntime(11550): java.lang.RuntimeException: Unable to start activity ComponentInfo{spexco.hus.cepvizyon/spexco.hus.cepvizyon.CepVizyon}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
10-05 17:34:54.722: ERROR/AndroidRuntime(11550): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
10-05 17:34:54.722: ERROR/AndroidRuntime(11550): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
10-05 17:34:54.722: ERROR/AndroidRuntime(11550): at android.app.ActivityThread.access$2200(ActivityThread.java:119)
10-05 17:34:54.722: ERROR/AndroidRuntime(11550): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
10-05 17:34:54.722: ERROR/AndroidRuntime(11550): at android.os.Handler.dispatchMessage(Handler.java:99)
10-05 17:34:54.722: ERROR/AndroidRuntime(11550): at android.os.Looper.loop(Looper.java:123)
10-05 17:34:54.722: ERROR/AndroidRuntime(11550): at android.app.ActivityThread.main(ActivityThread.java:4363)
10-05 17:34:54.722: ERROR/AndroidRuntime(11550): at java.lang.reflect.Method.invokeNative(Native Method)
10-05 17:34:54.722: ERROR/AndroidRuntime(11550): at java.lang.reflect.Method.invoke(Method.java:521)
10-05 17:34:54.722: ERROR/AndroidRuntime(11550): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
10-05 17:34:54.722: …Run Code Online (Sandbox Code Playgroud) 我正在使用TabHost来渲染一些标签.在XML定义中,一切都设置为〜通常,RelativeLayout是TabHost的FrameLayout的唯一子节点.
奇怪的是,相对布局总是加载为View.GONE.在XML文件中设置RelativeLayout的visibiltiy不会改变这一点.在onCreate期间调用.setVisibility手动使RelativeLayout可见,但感觉不对.在选项卡之间切换也会使RelativeLayout再次可见.
我错过了什么基本的东西?手动指定标签作为FrameLayout的XML子项是否正常?
我在android中搜索了很多页面翻转效果.我找到了一些链接.不使用OpenGL的翻转示例.
但我想为Android实现3D真实页面翻转效果.和这个或者你在IReader中看到的效果相同.根据我的搜索,OpenGL必须用于此.我还搜索了一些提供OpenGL替代方案的框架.但最后我一无所获.所以我只是想为此启动OpenGL.但我从来没有使用过OpenGL.任何人都可以帮我翻页吗?一些有用的链接,教程,在Android等中启动OpenGL ...
在android我试图用两个按钮制作一个简单的表格..但我面临对齐问题.你可以帮忙吗?
这是代码
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns = "1"
>
<TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="UserName"></TextView>
<EditText android:text="EditText" android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content"></EditText>
</TableRow>
<TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Password"></TextView>
<EditText android:text="EditText" android:id="@+id/editText2" android:layout_width="wrap_content" android:layout_height="wrap_content"></EditText>
</TableRow>
<TableRow android:id="@+id/tableRow3" android:layout_width="wrap_content" android:layout_height="wrap_content">
<Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/button1" android:text="save"></Button>
<Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/button2" android:text="cancel"></Button>
</TableRow>
</TableLayout>
Run Code Online (Sandbox Code Playgroud)

使用此代码,我得到这样的UI,但我希望按钮对齐,请帮助我
我的应用程序中有一个小部件,只需要在服务运行时更新,而不是在其他时间.我想让Android不更新它,或者,最坏的情况是,只能以非常大的间隔更新它.
换句话说,我可以定义的最大值android:updatePeriodMillis是多少?
我似乎无法在任何地方找到这些信息......
如何制作一个自定义的Edittext,以便它看起来像在Android中旋转45度,它应该是可编辑的,以便用户可以在旋转的Edittext上输入文本.我试过了.但我没有得到任何解决方案.请给出一些想法来做到这一点.
我真的不知道出了什么问题,但我的if小部件是由系统更新的"APPWIDGET_UPDATE"它抛出以下异常.我尝试了几件事,导出接收器(真/假),我在模拟器和真实手机上试过它,但它是一样的.我添加了几个intent-filters,但它没有用.
11-06 20:10:10.279: W/ActivityManager(61): Permission denied: checkComponentPermission() reqUid=1000
11-06 20:10:10.279: W/ActivityManager(61): Permission Denial: broadcasting Intent { act=android.appwidget.action.APPWIDGET_UPDATE (has extras) } from com.ency.easychange (pid=1196, uid=10034) requires null due to receiver com.android.settings/com.android.settings.widget.SettingsAppWidgetProvider
Run Code Online (Sandbox Code Playgroud)
我的AppWidgetProvider只是声明,因为我试图消除可能性,但是在ExchangeRateWidgetProvider.onReceive()调用之前抛出异常.
public class ExchangeRateWidgetProvider extends AppWidgetProvider {
public static final String tag = "ExchangeRateWidgetProvider";
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
}
}
Run Code Online (Sandbox Code Playgroud)
我的清单:
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<!-- TODO: Remove, only for traces -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" …Run Code Online (Sandbox Code Playgroud) 我有一个ListView以下适配器:
private class ListAdapter extends BaseAdapter {
private List<Item> items;
private ImageCache imageCache;
public ListAdapter(List<Item> item) {
this.items=items;
imageCache=ImageCache.getInstance();
}
//nothing special here
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
convertView = getLayoutInflater().inflate(R.layout.listitem, parent, false);
viewHolder = new ViewHolder();
viewHolder.imgView = (ImageView) convertView.findViewById(R.id.imgview);
viewHolder.txtView = (TextView) convertView.findViewById(R.id.txtview);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
Item item = getItem(position);
//this method is used to start download
imageCache.load(item.getImageURL(), viewHolder.imgView); …Run Code Online (Sandbox Code Playgroud) 当我将v7 GridLayout放入线性布局时,我不断收到此错误:
找到标记android.support.v7.widget.GridLayout的意外名称空间前缀"xmlns"
如果我没有在线性或相对布局中的GridLayout,那么它将工作正常,但我必须在某种布局中使用GridLayout,所以滚动可以工作,但我不断得到上面的错误?
有人知道要防止在布局中发生这种情况吗?
谢谢你的帮助.
android-widget ×10
android ×9
listactivity ×1
listadapter ×1
opengl-es ×1
page-curl ×1
widget ×1