Android开发者网站上有一篇很棒的文章介绍了如何使用接口进行通信:
Fragment和它的托管ActivityFragment由同一个主持Activity我正在努力将这个概念应用于嵌套片段.特别是,getActivity()或Fragment#onAttach(Activity)告诉你什么Activity是托管Fragment.
嵌套片段的等价物是什么?"孩子"如何Fragment知道Fragment它包含在哪个"父母" 中?如果不知道这一点,孩子如何Fragment将事件传递给其父母Fragment?
一个显而易见的方法是播放来自孩子的意图Fragment并让父母Fragment听取广播,但我宁愿使用interface基于-based的方法.
在下面的代码中,如何关闭警告框?我不想导致内存泄漏.我在alertDialog上尝试了.dismiss(),但是没有用......谢谢
// User pressed the stop button
public void StopMsg_button_action(View view){
final EditText password_input = new EditText(this); // create an text input field
password_input.setHint("Enter Password"); // put a hint in it
password_input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); // change it to password type
AlertDialog.Builder alertDialog = new Builder(this); // create an alert box
alertDialog.setTitle("Enter Password"); // set the title
alertDialog.setView(password_input); // insert the password text field in the alert box
alertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() { // define the 'OK' button
public void onClick(DialogInterface dialog, …Run Code Online (Sandbox Code Playgroud) 我有一个使用一些库的应用程序.
问题是当我尝试导出apk文件时,我得到了"在APK内的同一路径上复制文件".
这是日志:
org.eclipse.core.runtime.CoreException: Duplicate files at the same path inside the APK
at com.android.ide.eclipse.adt.internal.project.ExportHelper.exportReleaseApk(ExportHelper.java:284)
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.doExport(ExportWizard.java:295)
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.access$0(ExportWizard.java:232)
at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard$1.run(ExportWizard.java:217)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Caused by: com.android.sdklib.build.DuplicateFileException: Duplicate files at the same path inside the APK
at com.android.sdklib.build.ApkBuilder$JavaAndNativeResourceFilter.checkEntry(ApkBuilder.java:123)
at com.android.sdklib.internal.build.SignedJarBuilder.writeZip(SignedJarBuilder.java:225)
at com.android.sdklib.build.ApkBuilder.addResourcesFromJar(ApkBuilder.java:563)
at com.android.ide.eclipse.adt.internal.build.BuildHelper.finalPackage(BuildHelper.java:372)
at com.android.ide.eclipse.adt.internal.project.ExportHelper.exportReleaseApk(ExportHelper.java:255)
... 4 more
Run Code Online (Sandbox Code Playgroud)
任何人都必须解决这个问题?
非常感谢你.
编辑:解决方案
我弄清楚问题是什么.我包含了一个包含AndroidManifest.xml文件的JAR文件,该文件与我自己的项目的AndroidManifest.xml文件冲突.我的实例中的解决方案是重建JAR文件,确保它排除了自己的AndroidManifest.xml版本,然后将新版本的JAR文件重新包含到我的项目中.执行此操作后,您可能需要清理项目.
我有静态方法,我在其中创建一个对话框
public static void showDialog(Context context) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Title");
builder.setMessage("Message");
builder.setPositiveButton("ok", new OnClickListener() {
public void onClick(DialogInterface dialog, int arg1) {
dialog.dismiss();
}});
builder.setCancelable(false);
builder.create().show();
}
Run Code Online (Sandbox Code Playgroud)
在我的应用程序中,可能存在多次调用方法的情况,但我不想打开2个或更多对话框.如何检查是否打开了对话框?谢谢...
我有一个带有表单的活动.因为表单很长,所以我使用了scrollview.
问题是当键盘启动时,scrollview不会改变.键盘与scrollview的最后一部分重叠.
如何确保键盘位于scrollview下方并调整scrollview以适应其上方的空间?
同时,有没有办法确保键盘上的"上一个"和"下一个"按钮也在键盘中?
有人可以明确的区别android:id,android:name以及name标签Android的XML文件.它们似乎都是引用事物的方法.
例如,当我在res/values/array.xml文件中有一个字符串数组时,我使用name定义数组中的字段访问,但Javadoc将其称为"ID".
android:id似乎只是在Views中使用?
我错过了什么,或者一个标签不简单吗?
这是我的代码:
<CheckBox
android:id="@+id/sprint_checkbox"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/sprint_game" />
<CheckBox
android:id="@+id/marathon_checkbox"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/marathon" />
<CheckBox
android:id="@+id/never_ending_checkbox"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/never_ending" />
Run Code Online (Sandbox Code Playgroud)
我想要做的是"检测"其中一个被检查,然后将另外两个设置为"禁用",因此用户只能选择一个.我试图使用".setOnCheckedChangeListener",但我不能这样做,有人可以帮我一些代码吗?非常感谢!
我试图检查sqlite数据库是否为空
public boolean chkDB(){
boolean chk = false;
Cursor mCursor = db.rawQuery("SELECT * FROM " + DATABASE_TABLE, null);
if (mCursor != null){
mCursor.moveToFirst();
if (mCursor.getInt(0) == 0){
chk = false;
}
}else{
chk = true;
}
return chk;
}
Run Code Online (Sandbox Code Playgroud)
但每次我调用该方法我都会得到空指针异常
我的Logcat显示了这个
06-28 22:35:19.519: E/AndroidRuntime(441): at com.android.id.DBAdapter.chkDB(DBAdapter.java:82)
06-28 22:58:06.269: E/AndroidRuntime(621): FATAL EXCEPTION: main
06-28 22:58:06.269: E/AndroidRuntime(621): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.id/com.android.id.MainActivity}: java.lang.NullPointerException
06-28 22:58:06.269: E/AndroidRuntime(621): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
06-28 22:58:06.269: E/AndroidRuntime(621): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
06-28 22:58:06.269: E/AndroidRuntime(621): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
06-28 22:58:06.269: E/AndroidRuntime(621): …Run Code Online (Sandbox Code Playgroud) 我正在使用广播类使用此代码来收听短信
package com.escortme.basic;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.widget.Toast;
public class SMSReceiverActivity extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Parse the SMS.
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
String str = "";
if (bundle != null)
{
// Retrieve the SMS.
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i=0; i<msgs.length; i++)
{
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
// In case of a particular App / …Run Code Online (Sandbox Code Playgroud)