0

我试图解决它几个小时,但无法解决。发生的事情是我设置了这个editText,称为活动上的布局,并将其连接到活动上的我的变量,当您单击该字段时,它会打开可视键盘,但是当您按下一个键时,它会带您到类似浏览器的搜索屏幕,而不仅仅是更新edittext的文本。

在我的 xml 中,editText 是:

<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:background = "@drawable/splash"
  android:orientation = "vertical">

  <EditText 
    android:id="@+id/searchEdit"
    android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:singleLine="true"
android:textColor="@color/black"
android:textColorHint="@color/hintGray"
android:textSize="20dp"
android:paddingLeft="50dp"
android:paddingRight="10dp"
android:layout_marginTop="300dp"
android:background="@drawable/a01_text_box"
android:hint="Hint"
android:layout_gravity="center_horizontal"   />

  <ImageButton 
android:id="@+id/searchButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/a01_boton_buscar"
android:layout_gravity="center_horizontal"  /> 

</LinearLayout>

在我做这个的活动上

public class SubscribeActivity {

private EditText searchEdit;
private ImageButton searchButton;
private Context context;

protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.subscribe_main);

        this.context = this;

        findAndInitViews();

}

protected void findAndInitViews() {
    searchEdit = (EditText) findViewById(R.id.searchEdit);
    searchButton = (ImageButton) findViewById(R.id.searchButton);

    searchButton.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            String codeText = searchEdit.getText().toString();
            Toast.makeText(context, codeText, Toast.LENGTH_LONG).show();
        }
    });

}

}

我仍然找不到不让它发生的方法。你能帮助我吗?

4

3 回答 3

1

看起来你实际上并没有在玩活动

这是错误的:

public class SubscribeActivity

它应该是这样的:

public class SubscribeActivity extends Activity
于 2012-07-27T13:47:39.047 回答
0

尝试不同的方式。

     public class SubscribeActivity extends Activity{

    private EditText searchEdit;
    private ImageButton searchButton;


    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.subscribe_main);

    searchEdit = (EditText) findViewById(R.id.searchEdit);
    searchButton = (ImageButton) findViewById(R.id.searchButton);    
 }

searchButton.setOnClickListener(new View.OnClickListener() {

    public void onClick(View v) {
        String codeText = searchEdit.getText().toString();
        Toast.makeText(SubscribeActivity.this, codeText, Toast.LENGTH_LONG).show();
    }
});

  }
 }

请尝试以这种方式进行并让我知道结果。

于 2012-07-27T13:57:49.693 回答
0

首先,我建议使用getApplicationContext()Activity 方法 - 而不是将 Activity 转换为您的 Context-Object。旁边你必须扩展Activity。我想知道您的代码正在运行...但我认为这是复制和粘贴错误。

onCreate(Bundle b)应该是公开的而不是受保护的。

如果故障仍然存在,我将注释显示 EditText 不需要的代码。然后一步一步地重新包含代码。

于 2012-07-27T14:06:26.940 回答