2013-07-19 2 views
1

У меня есть фрагмент кода, который показывает статический текст, текст редактирования как поле поиска и кнопку отправки, чтобы отправить запрос.Как сделать кнопку нажатой после редактирования текстового поля?

код вид выглядит следующим образом:

public class MyActivity extends Activity { 

    TextView textView; 
    private EditText edittext; 
    Button button; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_mine); 
     textView = (TextView) findViewById(R.id.textView1); 
     textView.setText("Enter your search String :"); 
     addKeyListener(); 
     addListenerOnButton(); 
    } 

    //Implement the method 
    public void addKeyListener() { 
     // get edit text component 
     edittext = (EditText) findViewById(R.id.searchText); 
     // add a key listener to keep track user input 
     edittext.setOnKeyListener(new OnKeyListener() { 
     public boolean onKey(View v, int keyCode, KeyEvent event) { 

      // if key down and "enter" is pressed 
      if ((event.getAction() == KeyEvent.ACTION_DOWN) 
       && (keyCode == KeyEvent.KEYCODE_ENTER)) { 

       // display a floating message 
       Toast.makeText(RecipeActivity.this, 
        edittext.getText(), Toast.LENGTH_LONG).show(); 
       return true; 
      } else if ((event.getAction() == KeyEvent.ACTION_DOWN) 
       && (keyCode == KeyEvent.KEYCODE_9)) { 

       // display a floating message 
       Toast.makeText(RecipeActivity.this, 
        "Aboriginal text!", Toast.LENGTH_LONG).show(); 
       return true; 
      } 
      return false; 
     } 
    }); 
    } 

    //Implement the button 
    public void addListenerOnButton() { 
     button = (Button) findViewById(R.id.button1); 
     button.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View arg0) { 

       /* I will capture the search string here */ 
      } 
     }); 
    } 
} 

Экран активности приходит так:

enter image description here

EDIT: Схема XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".RecipeActivity" > 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"> 
     </TextView> 

     <EditText 
     android:id="@+id/searchText" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:label="@string/search_label" 
     android:hint="@string/search_hint" > 
     <requestFocus /> 
     </EditText> 

     <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Submit" /> 

</RelativeLayout> 

Как вы можете e кнопка отправки перекрывает окно редактирования текстового поиска. Как я могу заставить элемент кнопки спуститься?

+1

Покажите нам ваш файл макета xml –

+0

Я предоставил xml-макет. –

+2

android: layout_below = "@ + id/searchText" – NaserShaikh

ответ

0

Было бы лучше использовать LinearLayout с android:orientation="vertical" в вашем XML-макете, потому что это намного дешевле, чем RelativeLayout для визуализации.

Решение с LinearLayout

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 

    <EditText 
    android:id="@+id/searchText" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"/> 

    <Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Submit" /> 

</LinearLayout> 

Если вы должны использовать RelativeLayout:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 

    <EditText 
    android:id="@+id/searchText" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/textView1"/> 

    <Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/searchText" 
    android:text="Submit" /> 

</RelativeLayout> 

См RelativeLayout Documentation для получения дальнейшей информации.

0

Использование Android: layout_alignParentBottom = "истина" в вашем

0

добавить андроида: ниже ссылки

<Button 
       android:id="@+id/button1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:below="@+id/searchText" 
       android:text="Submit" />