2012-07-27 46 views
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(); 
     } 
    }); 

} 

} 

我仍然無法找到它不發生的方式。你可以幫我嗎?

+2

你可以在這裏發佈你的代碼嗎? – Android 2012-07-27 13:36:47

+0

在你試圖找到'findViewById(id)' – 2012-07-27 13:40:47

+0

之前,你有沒有叫過'setContentView(R.layout.yourLayoutFromEditText)'是,在那裏更新了所有的代碼 – 2012-07-27 13:41:48

回答

0

首先,我會建議使用活動的getApplicationContext()方法 - 不降反升鑄造活動到您的上下文的對象。在你旁邊必須擴展Activity。林想知道你的代碼正在運行......但我認爲這是一個複製和粘貼錯誤。

onCreate(Bundle b)應該是公開的,而不是保護。

如果故障仍然存在,我就會說不需要顯示的EditText的代碼。然後再一步一步地將代碼包括回來。

+0

好的,使用coment建議,發現這種情況發生時,有一個progressDialog從開始活動打開,這是奇怪的,因爲它完成自己一旦意圖完成這一個。我從該活動中刪除了對話框,但沒有發現爲什麼會發生此問題。這解決了我的問題 – 2012-07-27 15:36:25

1

好像你實際上並沒有與活動

打這是錯誤的:

public class SubscribeActivity 

它應該是這樣的:

public class SubscribeActivity extends Activity 
+0

前的擴展實際上它並從延伸到Activity類的主要活動延長,但我不知道我是否可以發佈這些信息,所以我刪除張貼 – 2012-07-27 13:50:09

+0

那麼就清理項目前的延伸,並給予再試 – waqaslam 2012-07-27 13:53:11

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(); 
    } 
}); 

    } 
} 

請試着用這種方法做,讓我知道結果。

+0

還是同樣的結果:/ – 2012-07-27 14:01:34

+0

@ArielCapozzoli我已經改正了我的代碼PLZ採取look.And什麼錯誤你正在進入你的logcat。 – Akshay 2012-07-27 14:09:14

+0

那東西時,logcat的犯規給任何錯誤,它只是試圖打開全局搜索,同時聯繫人搜索和位置搜索... – 2012-07-27 15:32:33