我正在使用Droid Incredible进行开发(并且已经在1.5 AVD仿真器上进行了测试),我的选项卡小部件中的一个选项卡包含一个列表视图和一个带有EditText和一个发送按钮的行(用于聊天功能) .单击"发送"后,我将使用以下内容关闭软键盘,但它无法正常工作.这与我在其他地方发现的代码完全相同.
看到我错过的任何东西?
// in Button's onClick():
EditText chatTextBox = (EditText) findViewById(R.id.chat_entry);
// Handle button click ...
chatTextBox.setText("");
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(chatTextBox.getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY);
Run Code Online (Sandbox Code Playgroud)
我也尝试将旗帜改为0.没有运气.谁知道怎么了?
****编辑****刚刚意识到我最初使用的是hideSoftInputFromInputMethod()代替hideSoftInputFromWindow().改变它并没有使它工作,但......
我见过的很多例子都没有明确地说过connect().相反,他们只是使用getInputStream()或getResponseCode().
我假设所有这些需要连接的HttpURLConnection方法只是connect()自己调用?
是否有任何connect()必须明确调用HttpURLConnection的情况?
我已经读过,在活动的早期调用setContentView()很重要,因为它构建了可能被onCreate()中的后续代码操纵的视图对象.
就生命周期而言,一旦调用setContentView(),视图就会被绘制到屏幕上,或者是否允许onCreate()函数在视图对象中构建/填充信息,并等待在onCreate之后实际绘制它( )完成?
谢谢!
我使用的AlertDialog非常简单,只是带有文本框的自定义视图,以及alertdialog肯定提交按钮.我想验证文本框是否在用户解除对话框之前输入了文本.我看到两种可能性,每种都有问题:
使用AlertDialog(对比自定义对话框)可以使用这些选项吗?
我认为第二种选择是最简单的,但如果可能的话,我也要努力.
我在我的应用程序中包含了另一个开发人员免费提供的课程.他的班级有不同的方案.
这会在Android,市场等方面引起任何问题吗?应用程序中的每个类都需要是我自己的包吗?
是否可以从AsyncTask中调用不是调用Activity类的内部类来获取对启动执行AsyncTask的Activity实例的引用?
我知道这个线程,但它并没有完全解决如何引用调用Activity.有人建议将对Activity的引用作为参数传递给AsyncTask构造函数,但据报道,这样做总会导致NullPointerException.
所以,我很茫然.我的AsyncTask提供了强大的功能,我不想在每个想要使用它的Activity 中将它复制为内部类.必须有一个优雅的解决方案.
在读取HttpURLConnection的InputStream时,是否有任何理由使用以下哪一个而不是另一个?我见过两个例子都用过.
手动缓冲:
while ((length = inputStream.read(buffer)) > 0) {
os.write(buf, 0, ret);
}
Run Code Online (Sandbox Code Playgroud)
的BufferedInputStream
is = http.getInputStream();
bis = new BufferedInputStream(is);
ByteArrayBuffer baf = new ByteArrayBuffer(50);
int current = 0;
while ((current = bis.read()) != -1) {
baf.append(current);
}
Run Code Online (Sandbox Code Playgroud)
编辑我一般都是HTTP的新手,但我想到的一个考虑因素是,如果我使用持久的HTTP连接,我不能只读到输入流是空的吗?在这种情况下,我不需要读取消息长度并只读取该长度的输入流吗?
同样,如果不使用持久连接,那么我所包含的代码在正确读取流方面是否100%好?
我有一个TabActivity,想要捕捉和处理HOME和BACK的按下.我需要在哪里捕捉这些事件?
在我的TabActivity的子类中,我实现了以下内容:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
// Code handling
}
return super.onKeyDown(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)
没工作.
所以我在switch语句行上放置了一个断点.但是这个功能永远不会被调用,无论我按音量上/下,菜单,家里还是后退.我需要在哪里捕获这些KeyEvent?
当TabWidget使用意图为每个选项卡指定目标活动时,在默认操作之外的活动堆栈上是否有对这些活动的特殊处理?
对于Instance,如果我的应用程序有选项卡A,B和C,我按此顺序单击它们 - A,B,A,C,A,B - 活动堆栈将如何更改?
我对默认操作的理解,如果每次在intent上调用startActivity(),都会让Stack继续加载活动的新实例:A,AB,ABA,ABAC,ABACA,ABACAB
很难相信它的工作原理......似乎它会浪费资源而且可能是无穷无尽的.任何人都可以告诉我这将如何实际工作?
android ×7
buffer ×1
connection ×1
hide ×1
inputstream ×1
java ×1
keyevent ×1
package ×1
tabwidget ×1
view ×1