我从http://dev.mysql.com/downloads/connector/j/下载了MySQL的"mysql-connector-java-gpl-5.1.26.msi"的JDBC驱动程序.但我无法弄清楚如何使用它.http://dev.mysql.com/doc/refman/5.6/en/connector-j-binary-installation.html上的文档说它是一个包含所需jar文件的zip文件.但我得到的是一个.msi文件.当我执行msi文件时,它只是开始安装并消失.任何想法我如何从msi获取jar文件?
在主活动中,加载了一个包含一些输入字段和一个提交按钮的布局.单击提交按钮时,onClick处理程序方法会将短信发送回同一个手机号码:
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(number, null, "hi", null, null);
Run Code Online (Sandbox Code Playgroud)
定义的广播接收器拦截消息:
public class SmsReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle pdusBundle = intent.getExtras();
Object[] pdus=(Object[])pdusBundle.get("pdus");
SmsMessage messages=SmsMessage.createFromPdu((byte[]) pdus[0]);
if(messages.getMessageBody().contains("hi")){
abortBroadcast();
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在,从广播接收器,我想调用一个函数(带参数),这是我的主要活动.那可能吗?如果是,我应该在广播接收器中添加什么样的代码?
我@SuppressLint("InlinedApi")
在一些代码中遇到过我无法在网上找到它的任何描述.我理解@SuppressLint("NewApi")
用于在编写高于清单中提到的minsdk的代码时隐藏警告.但我无法弄清楚何时应该使用"InlinedApi".有任何想法吗?
我在应用程序清单中定义了一个提供程序:
<provider
android:authorities="com.example.myapp.provider"
android:name="com.example.myapp.MyProvider">
</provider>
Run Code Online (Sandbox Code Playgroud)
只需要在应用程序中使用提供程序.但是当我尝试运行我的活动时,我收到以下错误:
Failed to find provider info..
Run Code Online (Sandbox Code Playgroud)
但是如果我只是在清单中设置提供程序的export属性,它就可以正常工作:
android:exported="true"
Run Code Online (Sandbox Code Playgroud)
所以我的问题是为什么需要这个?因为,根据文档(http://developer.android.com/guide/topics/manifest/provider-element.html#exported),仅当提供程序可用于其他应用程序时才需要导出.难道我做错了什么?
[编辑]:令人惊讶的是,即使在删除导出的属性后,错误也已消失,而不进行任何其他更改.我不知道为什么它现在正在运作.可能是我身边的一些愚蠢的错误.我把这个问题保持开放,希望得到关于什么一定出错的线索.
[编辑]:这次我用接收器再次面对这个问题.所以这不是我身边的错误,正如我在之前的编辑中所假设的那样.我怀疑ADT构建工具有问题.
我正在使用Theme.AppCompat
我的应用程序来获得黑暗的外观.一切看起来都不错,除了使用这个主题的动作栏看起来很古老,即它有一个明亮的蓝色底部分隔线.
我希望操作栏看起来像它Theme.AppCompat.Light.DarkActionBar
.
看一下themes.xml,我发现:
<style name="Theme.AppCompat.Light.DarkActionBar"
parent="Theme.Base.AppCompat.Light.DarkActionBar">
<item name="windowActionBar">true</item>
</style>
<style name="Theme.Base.AppCompat.Light.DarkActionBar" parent="Theme.Base.AppCompat.Light">
<item name="actionBarDivider">@drawable/appcompat_divider_dark</item>
</style>
Run Code Online (Sandbox Code Playgroud)
所以我创建自己的风格如下:
<style name="myTheme" parent="@style/Theme.AppCompat">
<item name="actionBarDivider">@drawable/appcompat_divider_dark</item>
</style>
Run Code Online (Sandbox Code Playgroud)
但是我得到了构建错误:
No resource found that matches the given name (at 'actionBarDivider' with value
'@drawable/appcompat_divider_dark')
Run Code Online (Sandbox Code Playgroud)
为什么我不能使用框架使用的相同drawable?
我刚刚minsdk
在最新的Eclipse Luna.Eclipse中创建了一个新的空白Android项目,并在项目android-support--v4.jar
的libs文件夹中自动添加了一个.这导致控制台出错:
Found 2 versions of android-support-v4.jar in the dependency list,
but not all the versions are identical (check is based on SHA-1 only at this time).
All versions of the libraries must be the same at this time.
Versions found are:
Path: /home/faizal/DEV/ADT workspace/myNewProject/libs/android-support-v4.jar
Length: 758727
SHA-1: efec67655f6db90757faa37201efcee2a9ec3507
Path: /home/faizal/DEV/ADT workspace/appcompat_v7/libs/android-support-v4.jar
Length: 648327
SHA-1: ded9acc6a9792b8f1afc470f0c9cd36d178914cd
Jar mismatch! Fix your dependencies
Run Code Online (Sandbox Code Playgroud)
这是因为我还有一个appcompat_v7支持库项目,我将其用于另一个项目,并由较旧的Eclipse创建(我认为它是Juno ..它是ADT包的一部分).
我知道解决方案是删除其中一个罐子,但是哪个和为什么?
我们可以使用rebase将多个提交压缩到同一个分支上的一个提交中吗?
举个例子,我创建了两个主题分支 - 来自master的issueA_1和issueA_2.我在两个分支中进行了几次提交,如图中所示(为了简洁,我在这里使用提交名称而不是提交哈希):
--> (issueA_1) - commitX1
/
(master)--
\
--> (issueA_2)
|
commitY1
|
commitY2
Run Code Online (Sandbox Code Playgroud)
然后我做:
git checkout issueA_2
git rebase -i issueA_1
Run Code Online (Sandbox Code Playgroud)
我将rebase文件更改为:
pick commitY1
fixup commitY2
Run Code Online (Sandbox Code Playgroud)
在此rebase之后,提交历史记录如下所示:
--> (issueA_1) - commitX1
/
(master)--
\
--> (issueA_2)
|
commitX1
|
commitY1
|
commitY2
Run Code Online (Sandbox Code Playgroud)
我不再需要分支问题A_1,所以我这样做:
git branch -D issueA_1
Run Code Online (Sandbox Code Playgroud)
issueA_2的提交历史还不足以合并到master中.我希望在合并到master之前将此分支的commitX1,commitY1和commitY2压缩为1个单一提交.这可能吗?
如何为具有多个字段的实体设计DAO类?
例如,对于以下实体:
public class MyEntity{
private long id;
private int field1;
private String field2;
private Date field3;
private Date field4;
private int field5;
}
Run Code Online (Sandbox Code Playgroud)
我应该创建一个DAO类,其中包含每个字段的更新方法,如:
public class MyEntityDao{
public insert(MyEntity myEntity);
public delete(MyEntity myEntity);
public get(long id);
public updateField1(MyEntity myEntity)
public updateField2(MyEntity myEntity)
public updateField3(MyEntity myEntity)
public updateField4(MyEntity myEntity)
public updateField5(MyEntity myEntity)
}
Run Code Online (Sandbox Code Playgroud)
这似乎是合乎逻辑的事情,但我通常只看到一个update()
方法的例子.在这种情况下,DAO应该如何确定在数据库中更新哪个字段?它是否只是盲目地更新所有字段,即使只有1个可能已经改变了?或者实体类是否应将标志作为成员来指示哪些字段已更改?
在 Eclipse 编辑器中,我的 android 布局文件出现以下错误:
Invalid layout param in a RelativeLayout: layout_weight
Run Code Online (Sandbox Code Playgroud)
布局 :
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<EditText
android:id="@+id/text_input"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:inputType="textMultiLine"
android:background="@drawable/bg_textinput"
android:layout_weight="0.7"
/>
<EditText
android:id="@+id/text_input1"
android:layout_width="20dp"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:inputType="textMultiLine"
android:background="@drawable/bg_textinput"
android:layout_toRightOf="@id/text_input"
/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
我的 layout_weight 有什么问题?
有没有办法使用视图上的单击事件,以便它不会传播到视图层次结构中的任何其他视图?
例如,我有一个看起来像这样的视图层次结构:
List View -> LinearLayout(List view item) -> TableRow -> Space
Run Code Online (Sandbox Code Playgroud)
我想使用 Space 小部件上的单击事件,以便它不会传播到列表视图项。