小编DSl*_*r64的帖子

如何点击Android EditView"完成"按钮并隐藏键盘?

当用户点击时EditView,Android会打开键盘,以便用户可以写入EditView.

问题是,当用户完成写入时,无法隐藏键盘.用户必须按后退按钮才能隐藏键盘.

有没有办法Done在键盘上显示隐藏键盘的按钮?

keyboard android

107
推荐指数
13
解决办法
11万
查看次数

打破Android Studio 1.1.0中的变量值变化?

我知道我可以在我的代码更改变量的每一行设置一个断点,但是有一个选项,例如右键单击变量(到"添加到手表"),当变量值改变时会停止吗?

我认为C++有这个选择.看到这个.

还有Eclipse?看到这个.

这是在AS中实现的吗?

debugging android android-studio

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

如何将dimens.xml(sw600dp)导入Android Studio?

我继承了values下面显示的文件夹结构.

在此输入图像描述

一个多小时后,我用谷歌搜索并查看并下载Android Studio 1.2.2中的菜单并尝试创建文件和文件夹,但是我所做的一切都没有让我添加,例如dimens.xml (sw720dp).

我删除了dimens.xml (sw720dp - landscape)因为landscape不符合我的需要.

创建文件夹结构的人员采取了哪些步骤dimens.xml (sw600dp)才能出现在结构中?

dimens.xml使用sw<N>dp文件命名约定获取文件需要采取哪些步骤?我如何获得dimens.xml (sw720dp)它所属的位置?

您可以忽略其余部分.我只是表明我已经尝试了一些东西,其中没有一个正常.

我应该右键单击values还是dimens.xml (2)?然后怎样呢?

这就是我所做的,并没有按照我的要求做到:

在此输入图像描述 在此输入图像描述

我也尝试过:

在此输入图像描述 在此输入图像描述

编辑

我也试过复制sw600dp文件.没运气:

在此输入图像描述

这不可能是这么难.

xml android android-studio

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

如何忽略事件派发线程允许该程序工作?

我试图看看今天早些时候是否可以回答这个问题.我意识到我并不完全理解Event Dispatch Thread(EDT).谷歌搜索确认并帮助了这一点,并澄清了为什么我没有.(这也可能与理解有关.)

代码设置GUI,稍后(如前面的问题中所述)更新文本字段,直到取消设置标志.

我有几个问题/要求.

  • 请解释为什么如果两个调用(to swingInit和doIt)都在invokeLater块之外(如图所示),下面的代码运行正常,因为这两个调用都影响或查询GUI但是它们都没有在EDT上执行(是吗?).这不是诱人的失败吗?

  • 如果呼叫在swingInit内部和doIt外部,代码也会运行invokeLater.所以swingInit在EDT上执行,但不应该doIt在EDT上执行是一个问题吗?(我觉得这很有效.我应该去过吗?)

  • 我想我明白为什么它会挂起,如果doIt它在里面invokeLater而不管它在哪里swingInit:目的invokeLater只是初始化 GUI(对吧?).

  • 如果doIt只启动(可能发生的事件)在美国东部时间,但肯定不是里面invokeLater块?

(EDT概念的历史很有意思.它并不总是如此.请参阅上面的链接"我为什么不"理解它.)

import static java.awt.EventQueue.invokeLater;
import java.awt.event.*;
import javax.swing.*;

public class Whatever 
{
  static boolean flag = true;
  static JTextField tf = new JTextField("Hi",20);
  static JPanel …
Run Code Online (Sandbox Code Playgroud)

java invokelater event-dispatch-thread

7
推荐指数
1
解决办法
166
查看次数

如何解决"无法连接到编辑器以检索文本"错误?

我正在使用listview,listview中每个项目的布局如下.

<?xml version="1.0" encoding="utf-8"?> 
<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:orientation="horizontal"
           android:padding="15dp">

     <TextView
         android:id="@+id/barcodeTv"
         android:layout_width="75dp"
         android:layout_height="wrap_content"
         android:layout_gravity="center"
         android:layout_weight="1"
         android:gravity="center"
         android:text="Medium Text"
         android:textAppearance="?android:attr/textAppearanceMedium"/>

     <TextView
         android:id="@+id/pdtDescTv"
         android:layout_width="75dp"
         android:layout_height="wrap_content"
         android:layout_gravity="center"
         android:layout_weight="1"
         android:gravity="center"
         android:maxLength="40"
         android:layout_marginLeft="5dp"
         android:text="Medium Text"
         android:textAppearance="?android:attr/textAppearanceMedium"/>

     <TextView
         android:id="@+id/qtyTv"
         android:layout_width="75dp"
         android:layout_height="wrap_content"
         android:layout_gravity="center_vertical"
         android:layout_weight="1"
         android:ems="10"
         android:layout_marginLeft="5dp"
         android:gravity="center"
         android:text="Medium Text"
         android:textAppearance="?android:attr/textAppearanceMedium"/>

     <TextView
         android:id="@+id/retndQtyTv"
         android:layout_width="75dp"
         android:layout_height="wrap_content"
         android:layout_gravity="center"
         android:layout_weight="1"
         android:ems="10"
         android:layout_marginLeft="5dp"
         android:gravity="center"
         android:textAppearance="?android:attr/textAppearanceMedium"/>

     <EditText
         android:id="@+id/retQtyEt"
         android:layout_width="75dp"
         android:layout_height="wrap_content"
         android:layout_gravity="center"
         android:layout_weight="1"
         android:ems="10"
         android:layout_marginLeft="5dp"
         android:gravity="center"
         android:hint="@string/return_quantity"
         android:imeOptions="flagNoExtractUi|actionDone"
         android:inputType="number"
         android:singleLine="true"/>

     <Spinner
         android:id="@+id/mrpSpr"
         android:layout_width="75dp"
         android:layout_height="wrap_content"
         android:layout_gravity="center"
         android:layout_marginLeft="5dp"
         android:layout_weight="1"
         android:gravity="center"/>

     <EditText
         android:id="@+id/mrpEt"
         android:layout_width="75dp"
         android:layout_height="wrap_content"
         android:layout_gravity="center" …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-edittext

7
推荐指数
1
解决办法
7270
查看次数

Android clipboard.getText() 已弃用;那么如何获取其中的文本项?

这很好用,向我展示了放入 Android 剪贴板的最后一个字符串是什么,恰好是euswcnmst.

Log.w("clip", clipboard.getText().toString());

但getText不推荐用于clipboard对象。

同时,如果我这样做 Log.w("clip", clipboard.getPrimaryClip().toString());,我会得到这个,完全如图所示 ClipData { text/plain "label" {T:euswcnmst} }

我知道我想要什么,并且假设这种格式总是用于字符串剪贴板项目,我可以使用String函数( find:和后续}和 do substring)来提取euswcnmst,但这是一个黑客。

我该怎么办?

编辑

基于 Commonsware 的回答,这是我应该做的:

ClipData clip = clipboard.getPrimaryClip();

if(clip == null || clip.getItemCount() == 0)
  return; // ... whatever; just don't go to next line

String t = clip.getItemAt(0).getText().toString();
Run Code Online (Sandbox Code Playgroud)

编辑 2

如果剪贴板中的最后一个 ITEM 不是文本,则上面的代码会出现以下错误:

java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.String java.lang.CharSequence.toString()' …

clipboard android

6
推荐指数
2
解决办法
2249
查看次数

希望自定义键盘仅用于我的APP并在应用失去焦点时恢复以前的键盘

我通过遵循此链接中的精彩概述而不使用ECLIPSE来制作了“自定义键盘” 。我使用的是Android Studio(AS)1.1.0。

这是我设备上的屏幕截图:

在此处输入图片说明

唯一的问题是,该过程需要更改的设置Language and Input,并且还替换了FOR ALL APPS的键盘。我不要 我只希望我的应用更改ITSELF的键盘,然后在我的应用退出屏幕后立即恢复为以前的键盘,否则我将在用户屁股上造成极大的痛苦。除了这样做,我还可以添加按钮以执行希望通过自定义键盘调用的按键。(这并不可怕;用户只需要拉下通知栏并选择选择输入法即可,但对于大多数用户而言仍然太麻烦了。)

结构如下:

在此处输入图片说明

qwerty.xml通过执行以下操作可以更改键盘:

<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
          android:keyWidth="10%p"
          android:horizontalGap="0px"
          android:verticalGap="0px"
          android:keyHeight="60dp"
    >
    <Row>
        <Key android:codes="49" android:keyLabel="1" android:keyEdgeFlags="left"/>
        <Key android:codes="50" android:keyLabel="2"/>
        <Key android:codes="51" android:keyLabel="3"/>
        <Key android:codes="52" android:keyLabel="4"/>
        <Key android:codes="53" android:keyLabel="5"/>
        <Key android:codes="54" android:keyLabel="6"/>
        <Key android:codes="55" android:keyLabel="7"/>
        <Key android:codes="56" android:keyLabel="8"/>
        <Key android:codes="57" android:keyLabel="9"/>
        <Key android:codes="48" android:keyLabel="0" android:keyEdgeFlags="right"/>
    </Row>
...
Run Code Online (Sandbox Code Playgroud)

这里是method.xml:

<?xml version="1.0" encoding="utf-8"?>
<input-method xmlns:android="http://schemas.android.com/apk/res/android">
    <subtype
        android:label=              "@string/subtype_en_US"
        android:imeSubtypeLocale=   "en_US"
        android:imeSubtypeMode=     "keyboard" 
    />
</input-method> …
Run Code Online (Sandbox Code Playgroud)

java xml keyboard android

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

是否有一种全局方法可以捕获 Android 中的所有 EditText 焦点更改?

有没有聪明的方法来避免将第一块代码重复十几次?第二个块与第一个块的形式相同,我还有几个具有相同形式的块。我正在考虑一系列EditText字段(好主意?坏 [为什么?]?)但是有没有一种全局方法可以让一个块捕获所有焦点变化?

   txtExclude.setOnFocusChangeListener(new View.OnFocusChangeListener() {
       public void onFocusChange(View v, boolean hasFocus) 
       {
           if (!hasFocus)
               if (txtExclude.getText().length() == 0)
                   txtExclude.setBackgroundColor(Color.WHITE);

       }});

   txtRequired.setOnFocusChangeListener(new View.OnFocusChangeListener() {
       public void onFocusChange(View v, boolean hasFocus) 
       {
           if (!hasFocus)
               if(txtRequired.getText().length() == 0)
                   txtRequired.setBackgroundColor(Color.WHITE);
       }});
Run Code Online (Sandbox Code Playgroud)

编辑

第一个答案的非工作实现:

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity implements View.OnFocusChangeListener
{
   @Override
   protected void onCreate(Bundle savedInstanceState)
   {
      super.onCreate(savedInstanceState); // call superclass's version
      setContentView(R.layout.activity_main); // inflate the …
Run Code Online (Sandbox Code Playgroud)

java android lost-focus

5
推荐指数
2
解决办法
3908
查看次数

为什么AS告诉我`(ob instanceof Button)`总是`false`?

为什么AS告诉我这(ob instanceof Button)总是false?

此外,它给了"暗示" 'Cast to Button'.如果我接受提示,没有任何改变.

  void setTextSizeForField(int textSize, Object ... obs){
    for(Object ob: obs)
           if (ob instanceof EditText) ((EditText) ob).setTextSize ( textSize );
      else if (ob instanceof TextView) ((TextView) ob).setTextSize ( textSize );
      else if (ob instanceof Button)   ((Button)   ob).setTextSize ( textSize/10 );
  }
Run Code Online (Sandbox Code Playgroud)

消息的全文是:

Condition 'ob instanceof Button' is always 'false' less... (Ctrl+F1) 
This inspection analyzes method control and data flow to report possible conditions that are
 always true or false, expressions …
Run Code Online (Sandbox Code Playgroud)

instanceof android-studio

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

什么是android.R.id.message?

我找到了两个 SO 线程,它们告诉我如何在对象中居中标题和消息,AlertDialog并通过编写我希望能够调用以居中 any 的方法来伪造我的方式AlertDialog。它在手机和平​​板电脑上运行良好,甚至可以显示多行消息,无论是否带有'\n's。

  public void showCenteredInfoDialog(TextView _title, TextView _message) {

    _title.setGravity(Gravity.CENTER);

    LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    AlertDialog.Builder  builder = new AlertDialog.Builder(this);
                         builder.setPositiveButton("OK", null);
                         builder.setCustomTitle(_title);
                         builder.setMessage(_message.getText());
    AlertDialog dialog = builder.show();

    TextView messageView = (TextView) 
                dialog.findViewById(android.R.id.message);
             messageView.setGravity(Gravity.CENTER);
  }
Run Code Online (Sandbox Code Playgroud)

我做了大量的定制——即,我对我的发现和所做的事情有一些线索——但有一行让我想知道:

TextView messageView = (TextView) dialog.findViewById(android.R.id.message);

什么是 android.R.id.message?

这是我能找到的所有相关文档:

android.R.id
public static final int message = 16908299
Run Code Online (Sandbox Code Playgroud)

我在哪里可以找到有关Android.R.id对象(以及更多)的更多文档?这似乎是一个可能的金矿。

android android-alertdialog

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