小编Bem*_*efe的帖子

Android - 获取键盘按键

我想要按下软键盘的任何键.我不想在我的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; 也没有抓住关键事件.

我只在模拟器中测试过,但我认为这已经足够了.为什么它如此复杂从键盘上取一个简单的键事件?

java keyboard android keyevent android-input-method

26
推荐指数
2
解决办法
4万
查看次数

Android - 如何处理两个手指触摸

文档说明了这一点:

手势以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函数之后,这也让我只能识别第一个手指触摸.

我的代码有什么问题?

java events android multi-touch

6
推荐指数
1
解决办法
1万
查看次数

适用于 Android NDK 的 NFC API

我正在开发一个需要 NFC 支持的多平台项目。该项目是用 C++ 编写的,因此如果能够访问 C++ Android NFC API 就好了。

有没有办法使用 NDK 与 NFC 交互?

我知道从 NDK 可以调用 SDK Java 方法。在本例中,我可以创建一个 Java 类来处理 NFC 交互,然后从 C++ 调用这些方法。

您认为有可能建立这样的机制吗?

c++ java android nfc android-ndk

5
推荐指数
1
解决办法
2180
查看次数

Android - 使用 LinearLayout 制作 ScrollView

我想在里面制作一个带有 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)

java graphics android menu scrollview

4
推荐指数
1
解决办法
2万
查看次数

Java 1.8.0 在 JDBC 连接中启用 TLS1.2

我有一个 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 sql-server jdbc

3
推荐指数
1
解决办法
2万
查看次数