小编dmo*_*mon的帖子

如何将Set <String>转换为String []?

我需要得到一个String[]出来的Set<String>,但我不知道该怎么做.以下失败:

Map<String, ?> myMap = gpxlist.getAll();
Set<String> myset = myMap.keySet();
String[] GPXFILES1 = (String[]) myset.toArray(); // Here it fails.
Run Code Online (Sandbox Code Playgroud)

我该如何修复以使其有效?

java

269
推荐指数
4
解决办法
26万
查看次数

防止/捕获"IllegalArgumentException:参数必须是此视图的后代"错误

我有一个ListView,里面有一些可聚焦的组件(主要是EditTexts).是的,我知道这不是完全推荐的,但总的来说,几乎所有东西都工作正常,重点放在必须去的地方(我需要进行一些调整代码).无论如何,我的问题是,当用手指滚动列表然后在显示IME键盘时突然使用轨迹球,存在一种奇怪的竞争条件.有些东西必须超出范围并得到回收,此时该offsetRectBetweenParentAndChild()方法必须启动并抛出IllegalArgumentException.

问题是这个异常被抛出我可以插入try/catch的任何块之外(据我所知).所以这个问题有两个有效的解决方案:

  1. 有人知道为什么抛出这个异常以及如何阻止它发生
  2. 有人知道如何在某个地方放置一个try/catch块,至少让我的应用程序存活下来.据我所知,问题是焦点,所以它绝对不应该杀死我的应用程序(这是它正在做的).我尝试重写了ViewGroup这些方法,但这两种offset*方法被标记为final.

堆栈跟踪:

08-17 18:23:09.825: ERROR/AndroidRuntime(1608): FATAL EXCEPTION: main
08-17 18:23:09.825: ERROR/AndroidRuntime(1608): java.lang.IllegalArgumentException: parameter must be a descendant of this view
08-17 18:23:09.825: ERROR/AndroidRuntime(1608):     at android.view.ViewGroup.offsetRectBetweenParentAndChild(ViewGroup.java:2633)
08-17 18:23:09.825: ERROR/AndroidRuntime(1608):     at android.view.ViewGroup.offsetDescendantRectToMyCoords(ViewGroup.java:2570)
08-17 18:23:09.825: ERROR/AndroidRuntime(1608):     at android.view.ViewRoot.scrollToRectOrFocus(ViewRoot.java:1624)
08-17 18:23:09.825: ERROR/AndroidRuntime(1608):     at android.view.ViewRoot.draw(ViewRoot.java:1357)
08-17 18:23:09.825: ERROR/AndroidRuntime(1608):     at android.view.ViewRoot.performTraversals(ViewRoot.java:1258)
08-17 18:23:09.825: ERROR/AndroidRuntime(1608):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1859)
08-17 18:23:09.825: ERROR/AndroidRuntime(1608):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-17 18:23:09.825: ERROR/AndroidRuntime(1608):     at android.os.Looper.loop(Looper.java:130)
08-17 …
Run Code Online (Sandbox Code Playgroud)

android illegalargumentexception viewgroup viewroot

54
推荐指数
8
解决办法
3万
查看次数

onPrepareOptionsMenu有什么作用?

我想Option Menu为Android制作,我访问过这个网站.在他们的脚本中,我发现onPrepareOptionsMenu,我尝试使用Android 2.3.3编译器进行编译和运行onPrepareOptionsMenu,无论是否有效,但我没有看到任何区别.

public boolean onCreateOptionsMenu(Menu menu){
//code here
}

public boolean onOptionsItemSelected(MenuItem item){
//code here
}

public boolean onPrepareOptionsMenu(Menu menu){
//code here
}
Run Code Online (Sandbox Code Playgroud)

实际上是什么onPrepareOptionsMenu方法呢?这种方法很重要吗?我可以删除方法吗?


加成

哦,我也听说过Action Bar在Android 3.0中,它说Action Bar是make的替代方式Option Menu,并且它正在使用onPrepareOptionsMenu.是对的吗?

谢谢...

android menu optionmenu

30
推荐指数
2
解决办法
4万
查看次数

在某些配置更改期间,Loader无法保留自身

根据http://developer.android.com/guide/components/loaders.html,有关加载器的一个好处是,它能够在配置更改期间保留其数据.

在配置更改后重新创建时,它们会自动重新连接到最后一个加载器的光标.因此,他们不需要重新查询他们的数据.

但是,它在所有情况下都不能很好地工作.

我采取以下简单的例子.它是一个FragmentActivity,主持一个Fragment.它Fragment本身拥有AsyncTaskLoader.

以下3种情况非常有效.

首次启动时(OK)

创建了1个加载程序,并loadInBackground执行一次.

在简单旋转期间(OK)

没有创建新的加载器,loadInBackground也没有被触发.

启动子活动,按下后退按钮(OK)

没有创建新的加载器,loadInBackground也没有被触发.

但是,在以下场景中.

启动子活动 - >旋转 - >按下后退按钮(错误)

那时,旧的装载机onReset被称为.旧装载机将被销毁.将创建新的加载器loadInBackground并再次触发新的加载器 .

我期待的正确行为是,不会创建新的加载器.

加载器相关代码如下.我在Android 4.1模拟器下运行代码.

package com.example.bug;

import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.AsyncTaskLoader;
import android.support.v4.content.Loader;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class MainFragment extends Fragment implements LoaderManager.LoaderCallbacks<Integer> {
    private static class IntegerArrayLoader extends AsyncTaskLoader<Integer> …
Run Code Online (Sandbox Code Playgroud)

android

20
推荐指数
1
解决办法
4797
查看次数

最简单的Android动态壁纸示例

我正在尝试制作一个安卓动态壁纸.我正在寻找一个简单的例子,只显示一个坚实的背景,并没有其他任何让我开始.我查了很多教程,但他们都有偏好活动,我不能让他们中的任何一个工作.我甚至尝试删除除了必需的覆盖功能之外不需要的所有东西.任何人都可以发布代码只是一个简单的动态壁纸或发布一个肯定有效的例子的链接.

我一直在使用版本2.1 sdk 7的android模拟器.它运行sdk中的多维数据集动态壁纸,但是当我自己创建多维数据集项目时它不起作用.

谢谢!!!

android wallpaper live-wallpaper

19
推荐指数
1
解决办法
3万
查看次数

EditTextPreference和默认光标位置

这主要是我的一个小小的烦恼,但是让我感到厌烦的是,默认行为或EditTextPreferences是将光标放在字符串的开头.这对我来说根本没有意义.在人类已知的几乎任何其他界面(精细,ME)中,聚焦于文本字段会自动将光标发送到END.

所以.是否有(简单)方法来覆盖这个?我知道我可以延伸EditTextPreferencesetSelection()手动调用,但对于这样一个简单的问题,这似乎是一个非常复杂的解决方案.

android cursor android-edittext

16
推荐指数
3
解决办法
2995
查看次数

EditText:中心提示但从顶部开始输入文本

嗨我有一个带提示的编辑文本,我将提示作为中间使用android:gravity:"center".当我从edittext中开始输入时,键入从中间开始,如何使键入从leftcorner开始,同时仍然提示中心

<EditText
        android:id="@+id/edittext"
        android:layout_width="230dp"
        android:layout_height="110dp"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/imageView1"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="33dp"
        android:layout_toLeftOf="@+id/relativeLayout1"
        android:background="@drawable/roundcorners"
        android:ems="10"
        android:gravity="center_horizontal"
        android:hint="@string/fbhint"
        android:lines="6"
        android:paddingRight="5dp"
        android:textSize="14sp"      
        android:windowSoftInputMode="stateHidden" />
Run Code Online (Sandbox Code Playgroud)

android

14
推荐指数
2
解决办法
2万
查看次数

为视图组合layout_weight和maxWidth

我正在尝试使我的布局更加横向友好,我有一个常见的模式是添加LinearLayout一些按钮(例如OK |取消),只需设置一个值,layout_weight以便空间均匀分布.问题是,当您在横向模式下使用手机或(特别是)平板电脑时,最终会出现看起来很荒谬的巨大按钮.我尝试设置maxWidth按钮和线性布局,但无济于事.实现这一目标最简单的方法是什么?即,为视图设置最大水平尺寸,使其不会增长到整个宽度.我尝试了很多不同的东西,但都没有用.

这是一个示例布局:

    <LinearLayout 
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:gravity="center_horizontal"
      android:paddingLeft="10dp"
      android:paddingRight="10dp"
      android:paddingTop="6dp"
      android:paddingBottom="6dp">
      <Button 
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:enabled="false"
        android:textStyle="bold"
        android:text="@string/button1" />
      <Button 
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="@string/button2" />
    </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

注意:我知道我可以为横向创建一个新的布局文件并在那里做魔术.我想将专门的布局文件保持在最低限度,我希望这不需要它们.

css layout android landscape-portrait

11
推荐指数
1
解决办法
6811
查看次数

ClassCastException LinearLayout LayoutParams

我有一个Actionbar和一些片段.问题是我的主屏幕.左侧有一个概述片段,右侧有一个细节片段.我的TabListener是动态的,所以我想以编程方式设置我的布局的权重.每当我尝试获取LinearLayout的Layoutparams时,我都会遇到ClassCastException:

12-22 16:00:37.620: W/System.err(7235): java.lang.ClassCastException: android.widget.FrameLayout$LayoutParams cannot be cast to android.widget.LinearLayout$LayoutParams
12-22 16:00:37.625: W/System.err(7235):     at com.coover.eu.lostandfound.ListSearchFragment.onViewCreated(ListSearchFragment.java:184)
12-22 16:00:37.625: W/System.err(7235):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:884)
12-22 16:00:37.630: W/System.err(7235):     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1080)
12-22 16:00:37.630: W/System.err(7235):     at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:622)
12-22 16:00:37.630: W/System.err(7235):     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1416)
12-22 16:00:37.630: W/System.err(7235):     at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:505)
12-22 16:00:37.630: W/System.err(7235):     at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1178)
12-22 16:00:37.635: W/System.err(7235):     at android.app.Activity.performStart(Activity.java:5216)
12-22 16:00:37.635: W/System.err(7235):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2083)
12-22 16:00:37.635: W/System.err(7235):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)
12-22 16:00:37.635: W/System.err(7235):     at android.app.ActivityThread.access$700(ActivityThread.java:140)
12-22 16:00:37.635: W/System.err(7235):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1237)
12-22 16:00:37.640: W/System.err(7235):     at android.os.Handler.dispatchMessage(Handler.java:99)
12-22 16:00:37.640: W/System.err(7235):     at …
Run Code Online (Sandbox Code Playgroud)

android classcastexception android-linearlayout android-framelayout

10
推荐指数
1
解决办法
2万
查看次数

定位确定/取消按钮,以便模拟对话框中的布局

正如你们中的一些人可能已经注意到的那样,Android改变了ICS之后对话框中显示OK/Cancel按钮的顺序(参见本期).这种变化可能有意义,我不是在争论它.我的问题是,你们如何处理支持新主题(因为操作栏)和"原始"主题的应用程序?我们如何协调布局中的顺序与Dialog中的顺序?

我试着查看对话框代码,但它没有做任何特殊的事情,顺序是在布局文件中确定的(Holo的样式不同).是否有人创建了一个考虑到这一点的片段或小部件?

layout android

9
推荐指数
1
解决办法
2203
查看次数