我想在Java中做这样的事情,但我不知道如何:
当事件"对象1说'你好''发生时,对象2通过说"你好"来响应该事件.
有人可以给我一个提示或示例代码吗?
我正在尝试使用以下代码将文本居中ActionBar,但它将自己对齐到左侧.
你如何让它出现在中心?
ActionBar actionBar = getActionBar();
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setTitle("Canteen Home");
actionBar.setHomeButtonEnabled(true);
actionBar.setIcon(R.drawable.back);
Run Code Online (Sandbox Code Playgroud) 我想知道当前的页面位置ViewPager.我创建一个适配器并将此适配器设置为ViewPager.现在我想知道当前视图的当前页码或位置,因为我想在该特定页面上启动一些额外的事件.
我用来viewPager.setCurrentItem(1);设置第一项.
获取当前页面是否有类似的方法?
我正在Eclipse中更新我的SDK Manager,并且有两个新的下载:
Android L(API20,L预览版)
Android 4.4W(API20)
我很困惑,因为它们都被称为"API 20".我不确定"4.4W"中的"W"是指什么.
我试图在方向更改中保存数据.如下面的代码所示,我使用onSaveInstanceState()和onRestoreInstanceState().我尝试获取保存的值,然后检查它是否是正确的值onRestoreInstanceState().但是当我尝试使用新值时onCreate(),我没有新值,而是旧值.
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString("TEXT", user);
}
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
savedUser = savedInstanceState.getString("TEXT");
Log.d("enregistred value", savedUser);
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int display_mode = getResources().getConfiguration().orientation;
if (display_mode == 1) {
setContentView(R.layout.main_grid);
mGrid = (GridView) findViewById(R.id.gridview);
mGrid.setColumnWidth(95);
mGrid.setVisibility(0x00000000);
// mGrid.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
} else {
setContentView(R.layout.main_grid_land);
mGrid = (GridView) findViewById(R.id.gridview);
mGrid.setColumnWidth(95);
Log.d("Mode", "land");
// mGrid.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
}
Log.d("savedUser", savedUser);
if (savedUser.equals("admin")) { //value 0
adapter.setApps(appManager.getApplications());
} else if …Run Code Online (Sandbox Code Playgroud) 我有两个片段.第一个带有按钮,另一个带有ListView内部(ListFragment).
我想第一个片段(由于它的按钮)允许用户浏览第二个片段中的ListView.
所以我希望ListView由带有按钮的第一个片段控制.
我在片段之间进行通信没有问题(从第一个片段到第二个片段发送命令),但我不知道如何告诉我的ListView选择(以编程方式)特定列表项.
我应该使用什么样的ListView,如何告诉ListView选择/突出显示/聚焦其中一个项目?
当用户按下第一个片段的按钮时,我处于触摸模式.
我应该使用setFocusableInTouchMode(true)或者setChoiceMode(ListView.CHOICE_MODE_SINGLE)还是其他什么东西?
对于我目前正在开发的应用程序,我需要将不同活动的布局调整为用户的Android API级别.
有没有办法做到这一点?
我对应用程序包结构的最佳实践有疑问.
我观看了Reto Meier的Google I/O 2011演示文稿"Android Protips:专家Android开发人员的高级主题 "并阅读了他的博客文章" 深入了解位置 ",并注意到他的应用程序包结构:
COM.... .content_providers
com.... .receivers
com.... .services
com....... .UI com....... .UI.fragments
com.... .utils
com....... .utils.base
这是包的首选结构吗?有更好的结构吗?
我想创建一个ListView允许用户下载许多文件并在每个ListView项目中显示进度条状态的创建.它看起来像这样:

下载ListView有一些规则:
ListView项目中,其中包含进度条,百分比和当前状态(下载,等待,完成).ListViewListView是在下载活动中.用户可以更改为其他活动.当他们离开时,继续在后台下载.当他们回来时,显示下载任务的当前进度和状态.我试着用ThreadPoolExcutor一个Service.对于每个下载任务,我可以完成百分比,但我不知道如何将它们广播到适配器以显示进度.而且我不知道如何在后台运行所有任务,然后在包含活动的活动ListView处于活动状态时发布进度并保留已完成的任务
如果有任何库或示例可以解决我的问题,那将会很棒.提前致谢!
P/S:我已经搜索过类似的问题,但我找不到这个问题的解决方案,所以我不得不详细地创建自己的问题.所以请不要将其标记为duplicate.谢谢.
我刚刚阅读了Romain Guy关于如何避免Android内存泄漏的博客文章.
在文章中他给出了这个例子:
private static Drawable sBackground;
@Override
protected void onCreate(Bundle state) {
super.onCreate(state);
TextView label = new TextView(this);
label.setText("Leaks are bad");
if (sBackground == null) {
sBackground = getDrawable(R.drawable.large_bitmap);
}
label.setBackgroundDrawable(sBackground);
setContentView(label);
}
Run Code Online (Sandbox Code Playgroud)
罗曼说:
这个例子是泄露Context的最简单的例子之一.
我的问题是,你如何正确地修改它?
像这样?
TextView label = new TextView(Context.getApplicationContext());
Run Code Online (Sandbox Code Playgroud)
我测试了两种方式,结果是一样的.我无法找到差异.我认为这this比应用程序上下文更正确.因为this是一个参考Activity,也就是TextView属于那个Activity.
有人可以给我一个解释吗?