我试图用一个看起来完全像这样的选择器做一个Dialog:

我尝试过使用一个包含ListView的AlertDialog,但这会在ListView和底部灰色区域之间产生一个丑陋的黑色边框.我可以使用普通的Dialog,但我不想手动构建底部灰色区域.
我知道我可以继承AlertDialog,但是我还需要继承Builder,它最终会成为很多细节的代码.这样做有什么好办法吗?
干杯,
简而言之,这不会编译:
public <A> void test() {
A[] temp = new A[]{};
}
Run Code Online (Sandbox Code Playgroud)
是因为向后兼容性问题,还是语言设计中的一些根本兼容性呢?
因此,在我的应用程序的某些状态中,我想在我的设置菜单中禁用某些CheckBoxPreferences.但是,如果用户点击它们,我想要显示一个解释性的吐司.如果我只是做setEnable(false); 在CheckBoxPreference上,我确实得到了正确的外观和感觉.但我不能在点击时显示祝酒词.另一方面,我无法手动使CheckBoxPreference看起来像被禁用.
我不是在寻找像Hibernate这样的持久层,我只想生成sql-strings,它们应该兼容PreparedStatement.我已经尝试了像Squiggle这样的库,但它只支持SELECT,我还想生成插入和更新.理想的用法是:
generateInsertOn("myTable").addValue("value1").addValue("value2").generate();
Run Code Online (Sandbox Code Playgroud)
会产生这个字符串:
"INSERT INTO myTable (value1, value2) VALUES(?, ?)"
Run Code Online (Sandbox Code Playgroud)
我知道,有存在很多像我这样的,如题本,但他们不相当问同样的事情,和我一样.
干杯,
现在我有两个按钮.每个人都需要产生不同的声音.在未来,可能会有大约8个按钮,但现在只有两个.
public class MyActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final Button btnDrum1 = (Button) findViewById(R.id.btnDrum1);
btnDrum1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
MediaPlayer mp = MediaPlayer.create(this, R.raw.drum1);
mp.start();
mp.release();
}
});
final Button btnCym1 = (Button) findViewById(R.id.btnCym1);
btnCym1.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
MediaPlayer mp = MediaPlayer.create(this, R.raw.cym1);
mp.start();
mp.release();
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
最初我没有mp.release(),它会正常播放声音,但最终应用程序会因内存不足而崩溃.现在使用mp.release()它不会崩溃,但有时它在点击时不会播放声音.
这是点击按钮时播放声音最有效的方法吗?它是可扩展的吗?
我的第一次尝试是:
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
Date date = formatter.parse(string);
Run Code Online (Sandbox Code Playgroud)
它抛出ParseException,所以我发现了这个hack:
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
TimeZone timeZone = TimeZone.getTimeZone("Etc/GMT");
formatter.setTimeZone(timeZone);
Date date = formatter.parse(string);
Run Code Online (Sandbox Code Playgroud)
它也没用,现在我卡住了.如果我只是将时区更改为"GMT",它会毫无问题地解析.
编辑:要解析的示例字符串将是"2011-11-29 10:40:24 Etc/GMT"
edit2:我不想完全删除时区信息.我正在编写一个从外部用户接收日期的服务器,因此其他日期可能还有其他时区.更确切地说:我收到的具体日期来自苹果服务器的收据,在iPhone应用程序上购买应用程序,但我也可以从其他来源收到日期.
令我惊讶的是这段代码很好用:
int i = 2;
switch(i) {
case 1:
String myString = "foo";
break;
case 2:
myString = "poo";
System.out.println(myString);
}
Run Code Online (Sandbox Code Playgroud)
但是永远不应该声明String引用?是不是每个案例下的所有变量都被声明无论是什么,或者如何解决?
如果我有O一个巨大的方法的对象f(),我加载10000个O内存的例子.是10000个f()加载到内存中的例子吗?如果是这样,这是否意味着如果可能的话,我会通过使这个函数保持静态来节省内存?
我刚刚开始使用BoneCP,这是我第一次使用连接池.关于我应该如何使用它,我有点困惑.目前我将BoneCP对象保存为静态变量,因此我可以在不同的连接之间使用它.
当我完成连接后,我将其关闭connection.close().
我应该这样做,还是我不应该关闭它以使它能够被池重用?
这是我当前获得连接的实现:
private static BoneCP connectionPool;
public Connection getConnection() throws SQLException {
if (connectionPool == null) {
initPool();
}
return connectionPool.getConnection();
}
private void initPool() throws SQLException {
BoneCPConfig config = new BoneCPConfig();
config.setJdbcUrl(DB_URL);
config.setUsername(DB_USERNAME);
config.setPassword(DB_PASSWORD);
config.setMinConnectionsPerPartition(5);
config.setMaxConnectionsPerPartition(10);
config.setPartitionCount(1);
connectionPool = new BoneCP(config);
}
Run Code Online (Sandbox Code Playgroud)
这看起来是正确的还是我误解了我应该如何使用BoneCP?
我目前有一个GridView垂直滚动,一切正常.但是现在我想改变我的布局并让gridview在它的宽度而不是高度上增长,因为它变大了我迷失了.
每次将项添加到gridview时,我都试图简单地更改列宽.但即使正确添加了项目,也不会出现垂直滚动.有没有一种巧妙的方法可以解决这个问题,还是我必须制作自己的gridview?:(
干杯,