我想要按下软键盘的任何键.我不想在我的Activity中使用EditView或TextView,必须从我的Activity中的扩展View处理该事件.
我刚试过这个:
1)覆盖onKeyUp(int keyCode, KeyEvent event)Activity方法.这不适用于softkeybord它只是抓住几个硬键盘.
2)创建我的OnKeyListener并在我的视图中注册包含注册和工作的OnTouchListener.这与softkeyboar完全不兼容.
3)覆盖onKeyUp(int keyCode, KeyEvent event)View方法.如果我设置我的OnKeyListener,如果我没有设置它,这根本不起作用.
4)使用InputMethodManager对象调用方法showSoftInput并将其传递给我的View.这对于抬起键盘既不起作用,实际上我不得不打电话toggleSoftInput; 也没有抓住关键事件.
我只在模拟器中测试过,但我认为这已经足够了.为什么它如此复杂从键盘上取一个简单的键事件?
文档说明了这一点:
手势以ACTION_DOWN的动作事件开始,该动作事件提供第一个指针向下的位置.当每个附加指针向下或向上时,框架将相应地生成具有ACTION_POINTER_DOWN或ACTION_POINTER_UP的运动事件.
所以我在我的活动中完成了onTouchEvent函数的覆盖:
@Override
public boolean onTouchEvent(MotionEvent MEvent)
{
motionaction = MEvent.getAction();
if(motionaction == MotionEvent.ACTION_DOWN)
{
System.out.println("DEBUG MESSAGE POINTER1 " + MEvent.getActionIndex() );
}
if(motionaction == MotionEvent.ACTION_POINTER_DOWN)
{
System.out.println("DEBUG MESSAGE POINTER2 " + MEvent.getActionIndex() );
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,永远不会输入第二个if.该活动包含2个视图和2个OnTouchListener,我知道只有当活动的视图不消耗事件时才调用onTouchEvent所以我试图在监听器中返回false,这样我只能识别第一次手指触摸但是这可以避免听众收到ACTION_UP事件,也不允许我识别第二次手指触摸.我也试图在监听器中返回true,但是在手动调用onTouchEvent函数之后,这也让我只能识别第一个手指触摸.
我的代码有什么问题?
我正在开发一个需要 NFC 支持的多平台项目。该项目是用 C++ 编写的,因此如果能够访问 C++ Android NFC API 就好了。
有没有办法使用 NDK 与 NFC 交互?
我知道从 NDK 可以调用 SDK Java 方法。在本例中,我可以创建一个 Java 类来处理 NFC 交互,然后从 C++ 调用这些方法。
您认为有可能建立这样的机制吗?
我想在里面制作一个带有 LinearLayout 的 ScrollView。线性布局包含 6 个具有青色、蓝色、青色、蓝色等背景的视图......这是代码:
public class TouchActivity extends Activity
{
TouchedView TouchView;
public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
TouchView = new TouchedView(this);
TouchView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT , LayoutParams.WRAP_CONTENT) );
//setContentView(TouchView);
setContentView(TouchView.ViewLayout);
}
class TouchedView extends ScrollView
{
LinearLayout ViewLayout;
ListElement Elem1;
ListElement Elem2;
ListElement Elem3;
ListElement Elem4;
ListElement Elem5;
ListElement Elem6;
public TouchedView(Context context)
{
super(context);
ViewLayout = new TableLayout(TouchActivity.this);
ViewLayout.setOrientation(LinearLayout.VERTICAL);
Elem1 = new ListElement(TouchActivity.this , "CYAN");
Elem1.setLayoutParams(new TableLayout.LayoutParams(LayoutParams.MATCH_PARENT , 100 ) );
Elem2 = new ListElement(TouchActivity.this , "BLUE");
Elem2.setLayoutParams(new …Run Code Online (Sandbox Code Playgroud) 我有一个 SQL Server 2014 更新到最新的修订包 ( 12.0.5207 )。在环境中,唯一启用的协议是 TLS1.2(为此目的设置了注册表项)。我可以使用 SA 帐户在本地和远程使用 Management Studio 连接到 SQL 服务器。
但是,当我尝试使用 java 代码和 JDBC 驱动程序sqljdbc42.jar建立与 SQL 服务器的连接时,会引发以下异常:
驱动程序无法使用安全套接字层 (SSL) 加密与 SQL Server 建立安全连接。错误:“SQL Server 未返回响应。连接已关闭。
java代码如下:
public static void main(String[] args)
{
try
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}
catch (ClassNotFoundException e)
{
System.out.println( e.toString() );
}
String connectionUrl = "jdbc:sqlserver://localhost:1433;" +
"databaseName=TRCDB;user=sa;password=**********;";
try
{
Connection con = DriverManager.getConnection(connectionUrl);
}
catch (SQLException e)
{
System.out.println( e.toString() );
}
}
Run Code Online (Sandbox Code Playgroud)
当 JVM 启动时,传递以下选项:
-Djavax.net.debug=all -Djdk.tls.client.protocols="TLSv1.2" -Dhttps.protocols="TLSv1.2" …Run Code Online (Sandbox Code Playgroud) java ×5
android ×4
android-ndk ×1
c++ ×1
events ×1
graphics ×1
jdbc ×1
keyboard ×1
keyevent ×1
menu ×1
multi-touch ×1
nfc ×1
scrollview ×1
sql-server ×1