我正在构建一个带有ActionBar两个Tabs 的应用程序.如果设备/模拟器没有旋转,一切正常.如果旋转,选项卡状态会自动切换到tab1(正常,因为onCreate被调用)但内容不会更改.如果我在新方向中选择一个选项卡,则会调用onCreateView()所选方法,Fragment但视图不会更新(保持不变).有小费吗?
代码.
主要活动:
ActionBar actionbar = getActionBar();
actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.Tab ATab = actionbar.newTab().setText(R.string.player);
ActionBar.Tab BTab = actionbar.newTab().setText(R.string.stations);
Fragment AFragment = new AFragment();
Fragment BFragment = new BFragment();
PlayerTab.setTabListener(new MyTabsListener(AFragment));
StationsTab.setTabListener(new MyTabsListener(BFragment));
actionbar.addTab(ATab);
actionbar.addTab(BTab);
Run Code Online (Sandbox Code Playgroud)
使用相同的选项卡显示简单的文本视图.textview简单说明选择了哪个选项卡.
片段:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.a, container, false);
}
Run Code Online (Sandbox Code Playgroud)
上面提到的Fragment布局只包含带有硬编码Text的TextView.(仅用于测试目的)
Main布局如下所示.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" …Run Code Online (Sandbox Code Playgroud) 我得到一个奇怪的错误.我使用MediaPlayer播放媒体流(如shoutcast或icecast).
有时突然播放流(总随机)发生错误,流停止并重新启动.
OnErrorListener不会被触发!
logcat的:
03-02 17:50:36.274: W/MediaPlayer(16799): info/warning (702, 0)
03-02 17:50:36.274: I/MediaPlayer(16799): Info (702,0)
Run Code Online (Sandbox Code Playgroud)
或者像这样:
03-02 17:50:14.250: W/MediaPlayer(16799): info/warning (703, 0)
03-02 17:50:14.250: W/MediaPlayer(16799): info/warning (701, 0)
03-02 17:50:14.250: I/MediaPlayer(16799): Info (703,0)
03-02 17:50:14.250: I/MediaPlayer(16799): Info (701,0)
Run Code Online (Sandbox Code Playgroud)
要么
03-02 18:03:33.906: W/MediaPlayer(16799): info/warning (703, 126) <br>
03-02 18:03:33.906: I/MediaPlayer(16799): Info (703,126)
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
编辑:
啊.还有一个信息.701手段MEDIA_INFO_BUFFERING_START和702手段MEDIA_INFO_BUFFERING_END.如果我增加缓冲区大小,我想我可以解决这些问题?
编辑:但等等.BufferingSize被烘焙到系统中.诅咒.:)
我创建了一个自定义通知布局,它有一个可点击的按钮.到目前为止在Android 3(API Level 11)或更高版本上工作得很好,但是在Android 2.3上不起作用,ContentIntent从Notification总是覆盖我的布局并且无法覆盖.我无法点击视图,我总是点击通知并启动
显示通知和布局的代码:
Builder builder = new NotificationCompat.Builder(getApplicationContext());
RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.notification_layout);
contentView.setImageViewResource(R.id.notImage, R.drawable.stat_icon);
contentView.setTextViewText(R.id.notTitle, "Title");
contentView.setTextViewText(R.id.notText, "Text");
contentView.setOnClickPendingIntent(R.id.notButton, secondPendingIntent);
contentView.setOnClickPendingIntent(R.id.notContentLayout, pendingIntent);
builder
.setContentTitle("Title")
.setContentText("Text")
.setSmallIcon(R.drawable.stat_icon)
.setOngoing(true)
.setWhen(0)
.setTicker("Ticket")
.setContent(contentView)
.setContentIntent(contentIntent); //this intent override my contentView.setOnClickPendintIntent. I can't click the view.
not = builder.build();
not.contentView = contentView;
Run Code Online (Sandbox Code Playgroud)
布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp" >
<RelativeLayout
android:id="@+id/notContentLayout"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/notButton" >
<ImageView
android:id="@+id/notImage"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_marginLeft="8dp" …Run Code Online (Sandbox Code Playgroud) 如何在不重新启动整个应用程序的情况下应用主题?如果我使用startActivity(getIntent()); finish();Activity退出并且不重启.是否可以简单地重新启动/重新创建活动以应用主题?
我想使用不同的ActionBar图标取决于我使用的样式(暗或亮).我无法弄明白是怎么回事,继承了我的尝试:
<style name="AppThemeDark" parent="Theme.Sherlock.ForceOverflow">
<item name="android:actionButtonStyle">@style/customActionButtonStyleDark</item>
<item name="actionButtonStyle">@style/customActionButtonStyleDark</item>
</style>
<style name="AppThemeLight" parent="Theme.Sherlock.Light.ForceOverflow">
<item name="android:actionButtonStyle">@style/customActionButtonStyleLight</item>
<item name="actionButtonStyle">@style/customActionButtonStyleLight</item>
</style>
<style name="customActionButtonStyleDark" >
<item name="@drawable/action_search">@drawable/action_search</item>
</style>
<style name="customActionButtonStyleLight" >
<item name="@drawable/action_search">@drawable/action_search_light</item>
</style>
Run Code Online (Sandbox Code Playgroud)
我也尝试<item name="@drawable/action_search">@drawable/action_search</item>直接插入主题样式,但没有任何效果.
有什么想法?
在SlidingMenu的文档中写下:
进入您计划使用的SlidingActivities,使它们扩展Sherlock__Activity而不是__Activity.
设置应该没问题,我按照指南,但如果我尝试扩展我Activity的例如:SlidingSherlockFragmentActivity或SherlockSlidingFragmentActivity不起作用.
如果我延长我Activity用SherlockFragmentActivity我不能让SlidingMenu与getSlidingMenu()或致电setBehindContentView.
我使用一个Handler,它发布了一些Runnablevia postDelayed(r, DELAY_TIME),但我需要Runnables在发布新的via之前执行所有操作postDelayed.
任何好的想法如何尽可能简单地实现这一点?
编辑:
我希望它基本上像这样:
Runnable r = new Runnable() {
// Do some fancy action
};
if (mHandler.runnablesScheduled) {
mHandler.flushAllScheduledRunnables();
}
mHandler.postDelayed(r, DELAY);
Run Code Online (Sandbox Code Playgroud) 如何ImageView在用于个人资料照片的当前Google+应用中创建可选择的循环?
这就是我所说的:

取消选择上面的图像,然后选择下面的图像.
我尝试复制配置文件图片1到1.
到目前为止我的工作:
loadedImage是Bitmap其上显示
mImageView.setBackground(createStateListDrawable());
mImageView.setImageBitmap(createRoundImage(loadedImage));
Run Code Online (Sandbox Code Playgroud)
使用的方法:
private Bitmap createRoundImage(Bitmap loadedImage) {
Bitmap circleBitmap = Bitmap.createBitmap(loadedImage.getWidth(), loadedImage.getHeight(), Bitmap.Config.ARGB_8888);
BitmapShader shader = new BitmapShader(loadedImage, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setShader(shader);
Canvas c = new Canvas(circleBitmap);
c.drawCircle(loadedImage.getWidth() / 2, loadedImage.getHeight() / 2, loadedImage.getWidth() / 2, paint);
return circleBitmap;
}
private StateListDrawable createStateListDrawable() {
StateListDrawable stateListDrawable = new StateListDrawable();
OvalShape ovalShape = new OvalShape();
ShapeDrawable shapeDrawable = new ShapeDrawable(ovalShape);
stateListDrawable.addState(new int[] { android.R.attr.state_pressed …Run Code Online (Sandbox Code Playgroud) 我正在使用 OxyPlot 来绘制特定时间范围内的数量。
我使用的 3 个不同时间范围的可能性是:
一天,两天到31天,1年到4年。
某一天,情节总是必须显示 0 到 24 小时。
对于两天到 31 天,我想设置例如第一天,比如 1 月 1 日,然后在下一个 1 月 15 日和最后一个 1 月 30 日。
对于一年到 4 年的时间,我想设置 4 个刻度,例如 2011 2012 2013 2014。
这是否可以通过设置开始和结束时间以及间隔和字符串格式以某种方式实现?
可以设置开始时间和结束时间吗?
以下 16 字节原子操作是否正确实现?还有更好的选择吗?
typedef struct {
uintptr_t low;
uintptr_t high;
} uint128_atomic;
uint128_atomic load_relaxed(uint128_atomic const *atomic)
{
uint128_atomic ret;
asm volatile("xor %%eax, %%eax\n"
"xor %%ebx, %%ebx\n"
"xor %%ecx, %%ecx\n"
"xor %%edx, %%edx\n"
"lock; cmpxchg16b %1"
: "=A"(ret)
: "m"(*atomic)
: "cc", "rbx", "rcx");
return ret;
}
bool cmpexch_weak_relaxed(
uint128_atomic *atomic,
uint128_atomic *expected,
uint128_atomic desired)
{
bool matched;
uint128_atomic e = *expected;
asm volatile("lock; cmpxchg16b %1\n"
"setz %0"
: "=q"(matched), "+m"(atomic->ui)
: "a"(e.low), "d"(e.high), "b"(desired.low), "c"(desired.high)
: "cc");
return matched;
} …Run Code Online (Sandbox Code Playgroud)