小编woy*_*aru的帖子

没有动画的切换活动

如何FLAG_ACTIVITY_NO_ANIMATION在AndroidManifest文件中正确使用Intent标志?我认为我的问题是微不足道的,但我找不到好的例子或解决方案.

<intent-filter>
    <data android:name="android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)

但是,compliator没有报告错误,但是data不正确.我只想在活动之间切换时禁用动画.我可以getWindow().setWindowAnimations(0);在onCreate或onResume中使用,但使用flag是更好的方法,不是吗?

我也可以在代码中使用:

Intent intent = new Intent(v.getContext(), newactivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
getContext().startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

但是我想在Android Manifest中使用这个标志.如果从第二个活动返回到第一个活动,也要禁用动画.

animation android android-intent android-activity

154
推荐指数
8
解决办法
12万
查看次数

TextView使用不同的textSize

这可以在一个TextView中设置不同的textSize吗?我知道我可以使用以下方式更改文本样式:

TextView textView = (TextView) findViewById(R.id.textView);
Spannable span = new SpannableString(textView.getText());
span.setSpan(arg0, 1, 10, arg3);
textView.setText(span)
Run Code Online (Sandbox Code Playgroud)

我知道范围开始...文本结束我想改变大小.但我能为使用arg0arg3

android textview spannable

82
推荐指数
3
解决办法
6万
查看次数

配置虚拟主机和localhost重定向到xampp文件夹

我在创建虚拟主机时遇到问题.我使用的是Windows 7 x64 Professional.在文件中C:\Windows\System32\drivers\etc\hosts我只有这一行:

127.0.0.1   myhost
127.0.0.1   www.myhost
Run Code Online (Sandbox Code Playgroud)

在文件中C:\xampp\apache\conf\extra\httpd-vhosts.conf我有这个:

NameVirtualHost *:80
<VirtualHost *:80> 
    DocumentRoot "C:/xampp/htdocs/"
    ServerName localhost
    ServerAlias www.localhost
</VirtualHost>

<VirtualHost *:80> 
    DocumentRoot "C:/Users/Me/Dropbox/Project/public"
    ServerName myhost
    ServerAlias www.myhost
    <Directory "C:/Users/Me/Dropbox/Project/public">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
   </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

当然,在这些文件中添加这些行后,我已经重新启动了我的Apache服务器.不幸地打字myhostwww.myhost在我的浏览器中将我重定向到myhost/xampp.

我已经搜索过,我已经在google上找到了,还有stackoverflow描述如何使用xampp配置虚拟主机,但我怎么能认出我已经做好了一切.我知道我的问题并不新鲜,但我没有为我找到有效的解决方案.

我也认识到localhost在我的浏览器中输入会重定向我localhost/xampp.我不知道这些问题是否与我的情况有关.

apache xampp localhost virtualhost

25
推荐指数
1
解决办法
7万
查看次数

Android语音识别和录音同时进行

我的应用程序使用AsyncTask中的MediaRecorder类记录音频,并使用Google API转换语音到文本 - Recognizer Intent - 使用此问题的代码:如何在没有Android手机烦人的对话框的情况下使用语音识别

我也试过在Thread中录制音频,但这是更糟糕的解决方案.它会导致更多问题.我的问题是我的应用程序在模拟器上正常工作.但是由于缺乏语音识别服务,模拟器不支持语音重新识别.在我的设备上,当我开始录制音频和语音识别时,我的应用程序崩溃了 - "已意外停止".但是当我关闭wifi时,应用程序就像在模拟器上一样正常工作.

在AndroidManifest中录制音频需要:

<uses-permission android:name="android.permission.RECORD_AUDIO" />
Run Code Online (Sandbox Code Playgroud)

和语音识别要求:

<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud)

我想这是单音频输入的问题?我该如何解决这个问题?Google Speech Recognizer需要在主UI线程中工作,因此我无法在Async Task中执行此操作.所以我在Async Task中录音.我不知道为什么会导致问题.

我已将设备连接到Eclipse,并且我已使用USB调试.这是我在LogCat中的执行:

08-23 14:50:03.528: ERROR/ActivityThread(12403): Activity go.android.Activity has leaked ServiceConnection android.speech.SpeechRecognizer$Connection@48181340 that was originally bound here
08-23 14:50:03.528: ERROR/ActivityThread(12403): android.app.ServiceConnectionLeaked: Activity go.android.Activity has leaked ServiceConnection android.speech.SpeechRecognizer$Connection@48181340 that was originally bound here
08-23 14:50:03.528: ERROR/ActivityThread(12403):     at android.app.ActivityThread$PackageInfo$ServiceDispatcher.<init>(ActivityThread.java:1121)
08-23 14:50:03.528: ERROR/ActivityThread(12403):     at android.app.ActivityThread$PackageInfo.getServiceDispatcher(ActivityThread.java:1016)
08-23 14:50:03.528: ERROR/ActivityThread(12403):     at android.app.ContextImpl.bindService(ContextImpl.java:951)
08-23 14:50:03.528: ERROR/ActivityThread(12403):     at android.content.ContextWrapper.bindService(ContextWrapper.java:347)
08-23 14:50:03.528: ERROR/ActivityThread(12403): …
Run Code Online (Sandbox Code Playgroud)

android speech-recognition android-asynctask

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

如何正确地将特定对象的列表转换为Gson?

我正在研究Spring MVC项目.我正在使用Hibernate.我想使用AJAX和jQuery从我的Spring Controller中获取一些JSON.不幸的是,当我Gson在我的应用程序中实现方法时,我遇到了一个错误:

java.lang.UnsupportedOperationException: Attempted to serialize java.lang.Class: 
org.hibernate.proxy.HibernateProxy. Forgot to register a type adapter?
Run Code Online (Sandbox Code Playgroud)

我必须使用哪种适配器以及使用哪种方式?该方法的最后一行发生错误:

public String messagesToJson(List<Message> messages) {
    Gson gson = new Gson();     
    List<Message> synchronizedMessages = Collections.synchronizedList(messages);
    return gson.toJson(synchronizedMessages, ArrayList.class);
}
Run Code Online (Sandbox Code Playgroud)

这是我Message在使用Hibernate的Spring MVC项目中使用的类:

@Entity
@Table(name = "MESSAGES", schema = "PUBLIC", catalog = "PUBLIC")
public class Message implements java.io.Serializable {

    private static final long serialVersionUID = 1L;
    private int messageId;
    private User users;
    private String message;
    private Date date;

    //Constructor, getters, setters, toString
} …
Run Code Online (Sandbox Code Playgroud)

java json hibernate gson

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

CheckBoxPreference具有自己的布局

我有PreferenceScreen和一些PreferenceCheckBoxes.我想更改textColor和textSize的标题和摘要以及CheckBox的图像选中和取消选中.所以我android:layout用来改变这个属性.

我的ChceckBoxPreference:

<CheckBoxPreference
    android:layout="@layout/preference_checkbox"
    android:key="temp"
    android:title="@string/title"
    android:summary="@string/summary"
    android:defaultValue="true" 
/>
Run Code Online (Sandbox Code Playgroud)

当我使用android:widgetLayout它看起来很奇怪.这是我的preference_checkbox.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dp"
>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_alignParentLeft="true"
    android:layout_marginLeft="10dp"
>
<TextView 
    android:id="@+android:id/title"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textColor="@color/gray"
    android:textSize="20sp"     
    />
<TextView 
    android:id="@+android:id/summary"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textColor="@color/gray"
    android:textSize="14sp"
    />
</LinearLayout>
<CheckBox
    android:id="@+android:id/checkbox"
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:layout_alignParentRight="true"
    android:layout_marginRight="10dp"
/>  
</RelativeLayout>     
Run Code Online (Sandbox Code Playgroud)

带有id @+android:id/title和摘要的标题@+android:id/summary显示正确的值.但是,尽管默认值和id的复选框@+android:id/checkbox无法正常工作.它没有显示正确的值,我无法更改首选项中保留的值.不使用任何布局,我可以通过触摸整个CheckBoxPreference来更改复选框的值.但现在(使用我的布局)我只能通过触摸此复选框来更改复选框的值.如何以正确的方式为所有功能制作CheckBoxPreference的布局?

android android-preferences checkboxpreference

12
推荐指数
1
解决办法
9011
查看次数

IllegalStateException:当应用程序尝试再次显示DialogFragment时,活动已被销毁

我在stackoverflow上发现了很多类似的问题,但他们的解决方案在我的情况下不起作用.它们与onSaveInstanceState方法和支持库特别相关.

Activity在一个事件上运行此代码:

MyDialogFragment.showMyDialog(name, this, this);
Run Code Online (Sandbox Code Playgroud)

name参数是String对象.第二个参数(this)是正则Activity类对象,第三个参数(也this)是简单接口.我Activity实现了这个接口.showMyDialog()当然是静态方法.这是它的身体:

MyDialogFragment fragment = new MyDialogFragment(listener, "Hello " + name);
fragment.show(activity.getFragmentManager(), "myDialog");
Run Code Online (Sandbox Code Playgroud)

这在第一次尝试时效果很好.但是在第二天我得到了这个例外:

E/AndroidRuntime? FATAL EXCEPTION: main
Process: com.example.myapp, PID: 20759
java.lang.IllegalStateException: Activity has been destroyed
        at android.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1345)
        at android.app.BackStackRecord.commitInternal(BackStackRecord.java:597)
        at android.app.BackStackRecord.commit(BackStackRecord.java:575)
        at android.app.DialogFragment.show(DialogFragment.java:230)
        at com.example.myapp.view.dialog.MyDialogFragment.showMyDialog(MyDialogFragment.java:41)
        at com.example.myapp.MyActivity.showMyDialog(MyActivity.java:208)
        at com.example.myapp.MyActivity.onEvent(MyActivity.java:232)
        at com.example.myapp.MyActivity.handleMessage(MyActivity.java:89)
        at android.os.Handler.dispatchMessage(Handler.java:98)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5017)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
        at dalvik.system.NativeStart.main(Native Method) …
Run Code Online (Sandbox Code Playgroud)

android illegalstateexception android-fragments android-dialogfragment

12
推荐指数
2
解决办法
7472
查看次数

为什么Android以不正确的方式将View绘制在另一个内(以像素为单位定义宽度和高度)?

我想知道以何种方式的Android在屏幕上绘制布局图里面有定义的视图android:layout_width,并android:layout_height在像素值.

我正在使用Android类视图扩展android.view.SurfaceView.它只是MjpegView在Android应用程序上显示来自摄像头的MJPEG流.我正在使用此代码(进行一些小的更改):使用AsyncTask的Android ICS和MJPEG

这个MjpegView班级被放在里面RelativeLayout.MjpegView以编程方式添加对象,并且RelativeLayout具有以这种方式定义的属性:

android:layout_width="800px"
android:layout_height="600px"
Run Code Online (Sandbox Code Playgroud)

此大小值对于此应用程序是必需的,因此我无法更改它们.应用程序仅适用于横向.我MjpegView需要在320 x 240里面设置像素大小 RelativeLayout (800 x 600 px).我的应用程序将其放大RealtiveLayout以填充当前设备上的屏幕.这也是与流媒体MJPEG相关的问题.我正在研究具有1280 x 800分辨率的Nexus 7(2012版).

要在布局内获得此视图的实际大小,我必须测量Nexus 7屏幕的高度而不需要操作和导航栏.为了得到这个,我在一个中使用了这个方法Activity:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    RelativeLayout parentLayout = (RelativeLayout) findViewById(R.id.parent_layout);
    if (parentLayout != null && isLandscape) {
        this.measuredActivityHeight = parentLayout.getBottom();
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到703的值作为measuredActivityHeight运行活动.因此,要获得Android 320 x 240 px …

java android canvas bitmap

6
推荐指数
1
解决办法
669
查看次数

将外键作为复合主键的一部分进行级联保存实体对象

我想QuestionCompletion使用所有子元素坚持我班的对象。这些孩子之一具有复合主键。作为该主键的一部分,我还具有另一个实体的外键。结果,我得到这个错误:

Exception caught during request processing: javax.ejb.EJBTransactionRolledbackException:
could not set a field value by reflection setter of com.example.model.domain.QuestionCompletionAnswerPK.questionCompletionId
javax.ejb.EJBTransactionRolledbackException: could not set a field value by reflection
setter of com.example.model.domain.QuestionCompletionAnswerPK.questionCompletionId
Run Code Online (Sandbox Code Playgroud)

最后一个“由...引起”当然是NullPointerException

Caused by: java.lang.NullPointerException
Run Code Online (Sandbox Code Playgroud)

这是我的代码的一部分。最后一行导致错误。

QuestionCompletion questionCompletion = new QuestionCompletion();
List<QuestionCompletionAnswer> answers = new ArrayList<QuestionCompletionAnswer>();
for (;;) { // loop isn't important; it's loop for answers
    ExtendedQuestion extendedQuestion = new ExtendedQuestion();
    extendedQuestion.setId(extendedQuestionId); //extendedQuestionId is known to me in that place
    for (;;) { // loop isn't …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate jpa spring-mvc

5
推荐指数
1
解决办法
7177
查看次数

当App正在运行且可见时,如何在对话框中显示Android通知

我的问题有点复杂,所以我将简要描述一下我想要实现的目标.我的应用程序从GCM任何问题接收消息.当应用程序正在运行并且对用户可见时,我没有在操作栏中显示通知,我在对话框警报中显示此消息.我BroadcastReceiver用来实现这一目标.

主要问题是,当应用程序立即收到一些通知时.当主要活动对用户可见时,第一个通知将显示在对话框警报中.接下来将像通常的Android通知一样放在Action Bar中.此时,用户会处理对话框警报,并将从操作栏中选择下一个通知.此刻我正在使用我的CloudService(延伸IntentService)intent旗帜Intent.FLAG_ACTIVITY_CLEAR_TOPPendingIntent.FLAG_UPDATE_CURRENT旗帜pendingIntent.PendingIntent只是contentIntent为我的NotificationCompat.Builder.

它以这种方式工作,对于每个用户点击Action Bar的通知,我的活动正在刷新(浮动到较低的设备边缘,然后从上边缘浮动,带有消息的对话框警报 - 我从意图获取额外的onResume方法).这个动作很好.在这种情况下,Activity只有一个实例 - 在打开几个通知时,我不必突破同一活动的几个实例.但最大的问题是,当用户在每种情况下选择任何通知时,最后一个将在对话框警报中打开.intent尽管如此,活动似乎也是一样的PendingIntent.FLAG_UPDATE_CURRENT.

CloudService处理云消息有两种方法:

private void showNotification(Bundle extras) {
    notificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);

    String message = extras.getString(CloudMetaData.MESSAGE);

    if (App.isMyActivityVisible() && !CloudMessageDialogFragment.isAttached()) {
        sendBroadcast(message, NOTIFICATION_ID);
    } else {
        Intent intent = new Intent(this, MyParentActivity.class);
        intent.putExtra(CloudMetaData.MESSAGE, message);
        intent.putExtra(CloudMetaData.NOTIFICATION_ID, NOTIFICATION_ID);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

        PendingIntent contentIntent = PendingIntent.getActivity(this, 0, …
Run Code Online (Sandbox Code Playgroud)

android android-intent android-notifications android-activity

5
推荐指数
1
解决办法
3083
查看次数