Articles of java的

filter为Android ListView – 空间角色

我想使用EditText框并使用适配器getFilter()函数过滤我的listView 。 它工作得很好,直到我在文本框中放置一个空格字符。 编辑:这是一个SimpleAdapter而不是ArrayAdapter 如果我的列表包含以下单词:{“Apple”,“Banana”,“Red Apple”}如果我输入“apple”,它将返回包含苹果字样的所有项目(Apple和Red Apple)。 如果我输入“apple”,它将不会返回任何内容。 有任何想法吗? 这是代码: searchBox = (EditText) findViewById(R.id.searchBox); searchBox.addTextChangedListener(filterTextWatcher); 和 private TextWatcher filterTextWatcher = new TextWatcher() { public void onTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub } public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method […]

显示ListView的子项和标题

我有一个ListView ,无法显示列表中的子项…它只显示一个或另一个,但不是两个。 如果我从下面删除数字,它将显示字符串(标题): 我想显示项目和子项目。 /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); this.loadData(); String []titles_str = titles.toArray(new String[titles.toArray().length]); this.setListAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_2, android.R.id.text1, titles_str)); Number []subtitles_str = lengths.toArray(new Number[lengths.toArray().length]); this.setListAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_2, android.R.id.text2, subtitles_str)); }

通过引用将对象从一个Activity传递到下一个Activity是否可能,以及最佳策略是什么?

我有一个简单的Android应用程序,它使用类的实例,让我们称之为DataManager ,以类似Façade的方式管理对域类的访问。 我最初设计它是一个单独的,可以使用静态方法检索,但我最终对我的实现的混乱感到恼火,并重构为我认为是一个更简单和更清洁的想法。 现在的想法是,对于打开的每个文件,创建一个DataManager ,它们处理文件I / O和域类的修改(例如Book )。 当开始一个新的Activity时,我将这一个实例作为Serializable额外传递(我还没有使用Parcelable ,但是当我有基本概念工作时我希望我Parcelable ),然后我从Intent中获取DataManager新Activity的onCreate()方法。 然而,对象的比较表明从一个活动发送的对象与在第二个活动中从Bundle检索的对象不同(不同的引用)。 阅读Bundle (在StackOverflow等上)表明Bundles除了传值之外不能做任何其他事情。 那么什么可能是在活动之间传递对象最干净,最安全的策略? 我能看到它 忘记通过引用传递并使用具有自己的DataManager对象的每个Activity 。 每次关闭活动时都会传回新的DataManager以便底层活动可以使用它。 (我认为这是一个简单的解决方案。) 返回使用单例DataManager并使用静态方法从每个Activity获取它。 (不再热衷于使用单身人士。) 扩展应用程序以创建对DataManager的一种全局引用。 (再次,不热衷于全局variables的想法。) 这是一个公平的总结吗? 我可以使用其他一些健康的策略吗?

jittable的大小增加是否与android上的内存泄漏有关?

我一直看到这个: Jit: Resizing JitTable from 512 to 1024 (…) Jit: Resizing JitTable from 1024 to 2048 (…) Jit: Resizing JitTable from 2048 to 4096 这是否意味着我在某处泄漏记忆或者这是正常的吗? 还有,你能解释一下它的含义吗?

如何使用notifyDatasetChanged()来使用ListAdapter?

现在我使用setAdapter来更新我的ListView,但我认为正确的方法是使用notifiyDatasetChanged()并且我无法在我的主类中工作(它在适配器中)。 这是错误: 对于ListAdaptertypes,方法notifyDatasetChanged()未定义 我猜这有更好的方法 – 有人能指出我正确的方向吗? 这是我的代码的相关部分: public class ScoreList extends SherlockFragmentActivity { private ListView listViewScore; static List listScore = new ArrayList(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.score_list); ctx = this; listScore = dbh.getAllScores(); listViewScore = (ListView) findViewById(R.id.score_list); listViewScore.setAdapter(new ScoreListAdapter(ctx, R.layout.score_row_item, listScore)); listViewScore.getAdapter().notifyDatasetChanged(); //this is where I get the error } } 这是适配器: […]

无法find用于设置首选项Eclipse的Android SDK位置

要启动我安装的Android开发.. JDK 7 在Windows 7上的E:/ Drive中下载并安装了Eclipse 然后按照步骤, 使用Eclipse安装Android ADT 。 一切都很好,直到现在,但试图设置偏好不接受任何文件夹。 在网上寻找其他建议我发现有一些设置C:\Program Files\Android\android-sdk但在我的情况下没有这样的文件夹。 我的android-sdk是E:/ Drive而不是C:/ 我刚拿到一个文件夹(安装ADT后): E:\ Software \ JAVA Tools \ eclipse-mobile-juno-SR2-win32-x86_64 \ eclipse \ plugins \ com.android.ide.eclipse.adt.package_21.1.0.v201302060044-569685 我甚至找不到任何‘tools’文件夹(因为eclipse偏好需要) 不知道该怎么办。 请给我一些建议

使用超时多次调用CountDownLatch.await(int)

我使用CountDownLatch来等待来自另一个组件的某个事件(在不同的线程中运行)。 以下方法适合我的软件的语义,但我不确定它是否像我期望的那样工作: mCountDownLatch.await(3000, TimeUnit.MILLISECONDS) otherComponent.aStaticVolatileVariable = true; mCountDownLatch.await(3500, TimeUnit.MILLISECONDS); … 场景应该如下:我等待3秒钟,如果锁存器没有倒计数到0,我用该variables通知另一个组件,然后我等待最多3.5秒。 如果再次超时,那么我不在乎并将继续其他操作。 注意:我知道它看起来不像那样,但上面的场景在我的软件中是完全合理且有效的。 我确实阅读了await(int,TimeUnit)和CountDownLatch的文档,但我不是Java / Android专家,所以我需要确认。 对我来说,所有场景都是有效的: 如果第一次等待成功,则另一次等待将立即返回 如果第一个等待超时,则另一个等待仍然有效; 因此,如果另一个线程注意到静态信号,则第二个await可能会成功返回 两个都等待调用超时(根据我的软件的语义,这很好) 我正确使用等待(…)吗? 即使前一个await(…)在同一个对象上超时,也能以上述方式使用第二个等待(…)吗?

Android上的JNI:如何从Java代码中检索字符串?

我读了很多例子来检索C / C ++代码中的java字符串,但似乎我错过了一些东西。 这个简单的代码不起作用.. 在ActivityTest(android java代码)我有: public static native void nativeInit(String stringfromjava); 在TestActivity中我: ActivityTest.nativeInit(“test”); 在我的test-jni.c中: JNIEXPORT void JNICALL Java_com_test_jni_ActivityTest_nativeInit(JNIEnv* env, jclass cls, jobject obj, jstring stringfromjava){ __android_log_print(ANDROID_LOG_INFO, “TESTJNI”,”Native Init started”); const char* w_buf = (*env)->GetStringUTFChars(env, stringfromjava, 0); if(w_buf == NULL) { __android_log_print(ANDROID_LOG_INFO, “TESTJNI”,”file path recv nothing”); } else { __android_log_print(ANDROID_LOG_INFO, “TESTJNI”,”String: %s”, w_buf); } […]

在Android上创建离线地图

我是Android应用程序开发的新手,我必须创建一个离线地图Android应用程序。 我使用Mobile Atlas Creator获取地图视图osmdroid .zip格式,我不知道如何在我的应用程序中添加它。 有人可以告诉我如何在我的应用程序中使用Osmdroid吗? 如果您能提供分步说明,我将不胜感激。

检查手机是否可以发送短信

我已经阅读了一些相关的问题,但大多数都是针对电话,而不是短信。 到目前为止我发现的是: TelephonyManager manager = (TelephonyManager) context .getSystemService(Context.TELEPHONY_SERVICE); if (manager.getPhoneType() == TelephonyManager.PHONE_TYPE_NONE) { // I guess here are devices that are unable to send SMS } else { // can send SMS } 这是真的,使用TelephonyManager.PHONE_TYPE_NONE的设备无法发送短信吗? 我真的不明白TelephonyManager.PHONE_TYPE_NONE的描述,这是“没有电话无线电”。 谢谢!