小编Man*_*ani的帖子

如何使用AppCompat更改ActionBar的动作文本颜色

我正在尝试更改操作栏上操作菜单项的文本颜色.使用app compat.溢出图标也不会改变.这是我自定义样式的styles.xml文件.

RES /值/ styles.xml

<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
    <!-- Setting values in the default namespace affects API levels 7-13 -->
    <item name="actionBarStyle">@style/MyStyledActionBar</item>
</style>

<style name="MyStyledActionBar" parent="@style/Widget.AppCompat.Light.ActionBar">
    <!-- Setting values in the default namespace affects API levels 7-13 -->
    <item name="background">@drawable/bg_action_bar</item>
    <item name="titleTextStyle">@style/MyActionBarTitleText</item>
    <item name="actionMenuTextAppearance">@style/MyActionBarMenuText</item>
    <item name="actionMenuTextColor">@style/MyActionBarMenuText</item>
    <item name="actionOverflowButtonStyle">@style/MyActionButtonOverFlow</item>
</style>

<style name="MyActionBarTitleText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textColor">@color/font_half_white</item>
</style>

<style name="MyActionBarMenuText" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Menu">
    <item name="android:textColor">@color/font_half_white</item>
</style>

<style name="MyActionButtonOverFlow" parent="@style/Widget.AppCompat.Light.ActionButton.Overflow">
    <item name="android:src">@drawable/ic_action_search</item>
</style>
Run Code Online (Sandbox Code Playgroud)

RES /值-14/styles.xml

<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
    <!-- Setting values in the android namespace affects …
Run Code Online (Sandbox Code Playgroud)

android android-actionbar android-actionbar-compat

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

即使在调用onDestroy()之后,活动实例仍然存在

我传递一个在mainUI线程上创建的处理程序Activity并传递给执行某些网络操作的线程,当我获得结果时,我使用处理程序将结果发送回活动.

当我通过这些链接时,这种方法在内存泄漏方面存在问题:
Inner ClassHandler内存泄漏
Android开发人员

所以我已经实现了WeakReference,并使用了活动实例WeakReference.但Activity即使活动被破坏,我仍然看到实例存活.

我创建了一个Handler内部活动,并将活动实例作为弱引用传递给处理程序.
当我Handler回复10秒后传递给它的消息时,会Activity被销毁.但弱参考仍然有Activity实例,我看到Toast,后被Activity摧毁.

有些地方我的理解错了吗?
有人可以解释如何处理传递给处理程序的消息,但UI不在?

import java.lang.ref.WeakReference;

import android.os.Handler;
import android.os.Message;

public abstract class SingleParamHandler <T> extends Handler
{
private WeakReference<T> mActivityReference;

public SingleParamHandler(T activity) {
    mActivityReference = new WeakReference<T>(activity);
}

@Override
public void handleMessage(Message msg) {
    if (mActivityReference.get() == null) {
        return;
    }
    handleMessage(mActivityReference.get(), msg);
}

protected abstract void handleMessage(T activity, Message msg);

} …
Run Code Online (Sandbox Code Playgroud)

android android-service android-activity

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

如何使用Android源代码编译Helloworld

我想用AOSP运行helloworld应用程序并在模拟器中看到它.[不通过Android SDK设置]

我按照http://source.android.com/source/download.html中的步骤操作, 并成功编译了/ directory中的完整代码.

我可以在〜/ mydroid/out/target/product/generic/system/app中看到contacts.apk,camera.apk所有应用程序apk.

我尝试了两件事.

1 - 去/ package/apps文件夹.拿了一个helloworld应用程序(在android-sdk中创建的helloworld文件夹),并从Launcher2文件夹中复制了一个'Android.mk'文件,保留了我的应用程序新名称,并将该文件夹放在packages/app文件夹中并在/编译.我看不到为〜/ mydroid/out/target/product/generic/system/app创建的.apk文件.

2 - 我在'Android,mk'文件的packages/app文件夹中更改了Launcher2的软件包名称,并在root用户编译.我无法在〜/ mydroid/out/target/product/generic/system/app下的新打包名称上看到新的apk.

我尝试了几次活动名称,manifest.xml文件中的应用程序名称的更改.没有什么能反映出来.但是可以肯定的是,helloworld和包名的变化都会在编译时被拾取.我可以看到中间类被创建了.〜/ mydroid/out/target/common/obj/APPS/manifirst_intermediates/src/com/android/mani - > manifirst就像我创建和运行的helloworld.〜/ mydroid /出/目标/普通/ OBJ/APPS/Launcher2_intermediates/src目录/ COM /安卓/发射器

任何人都可以分享在AOSP中编写一个简单的Helloworld程序的步骤.

谢谢,玛尼

android android-source

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

自定义对话框中的gridview不工作......?

我尝试将网格视图添加到自定义对话框.显示对话框时,它会崩溃.
但是当尝试在正常活动中显示网格视图时它正在工作.(没有对话框)
我从开发人员android网站上获取了示例.勾选网格视图并尝试集成到自定义对话框中.
我使用了两个xml main.xml和category.xml.
这是我的代码:

package com.android.test;   
import android.app.Activity;   
import android.app.AlertDialog;   
import android.app.Dialog;   
import android.content.Context;   
import android.os.Bundle;   
import android.view.LayoutInflater;   
import android.view.View;   
import android.view.ViewGroup;   
import android.view.View.OnClickListener;  
import android.widget.AdapterView;    
import android.widget.BaseAdapter;   
import android.widget.Button;   
import android.widget.GridView;   
import android.widget.ImageView;   
import android.widget.TextView;   
import android.widget.Toast;   
import android.widget.AdapterView.OnItemClickListener;   
public class test extends Activity {   
    /** Called when the activity is first created. */   
    public final static int CATEGORY_ID=0;   
    public void onCreate(Bundle savedInstanceState) {   
        super.onCreate(savedInstanceState);   
        setContentView(R.layout.main);   
        Button button = (Button)findViewById(R.id.categories);   
        button.setOnClickListener(new Button.OnClickListener(){   
            public void onClick(View v) { …
Run Code Online (Sandbox Code Playgroud)

android

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