java - 忽略 Android Nexus S EditText 设置 (2.3.4)

标签 java android nexus-s

直到 Nexus S 手机的 2.3.4 更新后我才看到这个问题。

我有一个非常简单的应用程序,有一个在应用程序启动时加载的主要 Activity 。

此主要 Activity 有一个由一些 TextView 和 EditText、几个 Spinner 和一个 Button 组成的 LinearLayout。

我现在对 EditText 的输入有疑问。它应该会配备电话输入类型的软键盘。相反,它配备了标准的字母数字软键盘,一旦您开始输入内容,它就会将其传递给 Google 搜索应用程序,并且根本不会填写 EditText。

如果我转到我的设置 Activity 并返回,EditText 功能正常。

我这辈子都弄不明白这里出了什么问题,我即将宣布这是手机 2.3.4 更新的一个问题。

Activity 代码:

public class MainActivity extends Activity {

private boolean unregistered = false;

private Spinner location, time;
private Button submit;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    EditText pin = (EditText) findViewById(R.id.pfp_pin);

    pin.setOnKeyListener(new OnKeyListener() {
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if(debugMode) System.out.println("In onKeyListener for PIN");

            // If the event is a key-down event on the "enter" button
            if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
                (keyCode == KeyEvent.KEYCODE_ENTER)) {
              return true;
            }
            return false;
        }

        public int getInputType() {
            return InputType.TYPE_CLASS_PHONE;
        }

    });   

    pin.setTransformationMethod(new PasswordTransformationMethod());
    pin.requestFocus();

    location = (Spinner) findViewById(R.id.pfp_location);

    ArrayAdapter<CharSequence> loc_adapter = ArrayAdapter.createFromResource(
            this, R.array.pfp_locs, android.R.layout.simple_spinner_item);
    loc_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    location.setAdapter(loc_adapter);
    location.setOnItemSelectedListener(new LocOnItemSelectedListener());

    time = (Spinner) findViewById(R.id.pfp_time);

    ArrayAdapter<CharSequence> time_adapter = ArrayAdapter.createFromResource(
            this, R.array.pfp_times, android.R.layout.simple_spinner_item);
    time_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    time.setAdapter(time_adapter);
    time.setOnItemSelectedListener(new TimeOnItemSelectedListener());

    submit = (Button) findViewById(R.id.pfp_submit);
    submit.setOnClickListener(new SubmitOnClickListener()); 
}

在那里,我尝试强制聚焦、密码屏蔽和电话输入类型作为首要措施,看看是否可以修复它。这些不会改变任何行为,可以忽略,因为问题开始时它们不存在。

布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">

    <ImageView  
            android:maxHeight="88sp"
            android:scaleType="centerInside"
            android:adjustViewBounds="true"
            android:src="@drawable/header" android:layout_gravity="center" android:layout_height="wrap_content" android:layout_width="wrap_content"/>


    <TextView android:id="@+id/pfp_pin_title" 
        android:text="@string/pfp_pin_title" 
        android:paddingLeft="14dip" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"></TextView>
    <EditText android:id="@+id/pfp_pin" 
        android:text="" 
        android:password="true" 
        android:singleLine="true"
        android:inputType="phone"
        android:linksClickable="false"
        android:imeOptions="actionDone"
        android:autoLink="none"     
        android:nextFocusUp="@+id/pfp_time"
        android:layout_gravity="top" 
        android:layout_width="fill_parent" android:layout_height="wrap_content"></EditText>

<TextView android:id="@+id/pfp_loc_label" 
    android:text="@string/pfp_loc_label" 
    android:paddingLeft="14dip" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"></TextView>

<Spinner android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:id="@+id/pfp_location" 
    android:prompt="@string/pfp_location_s" 
    android:layout_marginBottom="5dp"></Spinner>
<TextView android:id="@+id/pbp_time_label" 
    android:layout_height="wrap_content" 
    android:text="@string/pfp_time_label" 
    android:paddingLeft="14dip" 
    android:layout_width="fill_parent"></TextView>
<Spinner android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:id="@+id/pfp_time" 
    android:prompt="@string/pfp_time_s" 
    android:layout_marginBottom="25dp"></Spinner>
<Button android:layout_width="wrap_content" 
    android:id="@+id/pfp_submit" 
    android:text="@string/pfp_submit_s" 
    android:layout_height="65dp" 
    android:nextFocusDown="@+id/pfp_pin"
    android:layout_gravity="center_horizontal"></Button>

<ImageView  
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:layout_gravity="center"
            android:maxHeight="50sp"
            android:scaleType="centerInside"
            android:adjustViewBounds="true"
            android:src="@drawable/powered_by_reversed" />

最佳答案

我认为这是一个错误。我在设置 2.3.3、2.3.4 和 NookColor 1.20 时遇到了同样的问题

    android:inputType="number"

它显示电话软键盘而不是数字软键盘。

关于java - 忽略 Android Nexus S EditText 设置 (2.3.4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6218574/

相关文章:

android - 如何修复 NFC 中的 uid

android - eclipse 不在 logcat 中仅显示 galaxy nexus 的时间?

android - html 文本输入损坏 - Nexus-S 4G/Android 4

java - 减少来自 Java Lambda 的 DynamoDB 延迟

java - Kryonet 没有收到自定义类(class)

android - unity3d 中的能源效率 - 暂停应用程序等待用户交互

android - 使用 HTTP 400 进行改造和分段图像上传

android - 无法创建媒体播放器,简短的 Android 应用程序

java - SWT TrayItem 鼠标监听器

java - Log4j模式,如何表示空格