2017-02-22 21 views
-1

Кнопка не работает при нажатии. Это анимирует, и я не получаю никаких ошибок. Даже если я использую 'this.getApplicationContext()', 'view.getContext() или' data.this.getApplicationContext ', он не работает. Код в классе «данные» соответствует.Кнопка не работает в Android

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

    Button button = (Button) findViewById(R.id.data_btn_copy_opd_num); 
    button.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      Toast.makeText(v.getContext(), "Text Message", Toast.LENGTH_LONG).show(); 
     } 
    });` 

XML-файл:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/data" 
    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="com.example.android.stark_student_clinic.data" 
    android:filterTouchesWhenObscured="false" 
    android:fitsSystemWindows="true" 
    android:gravity="top|right" 
    android:focusable="false"> 

    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/data_scrollview"> 

     <LinearLayout 
      android:orientation="vertical" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:id="@+id/data_linearlayout"> 

      <GridLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_alignParentTop="true" 
       android:layout_alignParentStart="true" 
       android:id="@+id/data_gridlayout" 
       android:layout_gravity="center"> 

       <EditText 
        android:layout_width="113dp" 
        android:layout_height="55dp" 
        android:inputType="textPersonName" 
        android:text="Name : " 
        android:ems="10" 
        android:id="@+id/data_txt_student_name" 
        android:layout_row="0" 
        android:layout_column="2" 
        android:enabled="false" 
        android:textColorLink="?attr/colorPrimaryDark" 
        android:textColor="?attr/colorPrimaryDark" /> 

       <ImageView 
        android:layout_height="78dp" 
        app:srcCompat="@mipmap/ic_launcher" 
        android:id="@+id/data_imageview_photo" 
        android:layout_toStartOf="@+id/linearLayout" 
        android:layout_width="71dp" 
        android:layout_alignBottom="@+id/linearLayout" 
        android:layout_row="0" 
        android:layout_column="0" 
        android:layout_columnSpan="2" 
        android:layout_rowSpan="2" 
        android:layout_gravity="center"/> 

       <EditText 
        android:layout_width="122dp" 
        android:inputType="textPersonName" 
        android:text="OPD Number : " 
        android:ems="10" 
        android:id="@+id/data_txt_student_opd_number" 
        android:layout_alignParentTop="true" 
        android:layout_alignParentEnd="true" 
        style="@android:style/Widget.Material.EditText" 
        android:selectAllOnFocus="true" 
        android:layout_height="53dp" 
        android:enabled="false" 
        android:clickable="false" 
        android:contextClickable="false" 
        android:cursorVisible="false" 
        android:textColor="?attr/colorPrimaryDark" 
        android:layout_column="2" 
        android:layout_row="1"/> 

       <EditText 
        android:layout_width="121dp" 
        android:layout_height="wrap_content" 
        android:inputType="textPersonName" 
        android:text="DOB : " 
        android:ems="10" 
        android:id="@+id/data_txt_student_dob" 
        android:layout_column="2" 
        android:layout_row="2" 
        android:textColor="?attr/colorPrimaryDark" 
        android:enabled="false" /> 

       <Button 
        android:text="Button" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:id="@+id/data_btn_copy_opd_num" 
        android:layout_column="3" 
        android:layout_row="1" 
        android:gravity="center" 
        android:layout_gravity="center" /> 

      </GridLayout> 

      <TextView 
       android:text="Text" 
       android:layout_width="match_parent" 
       android:layout_height="299dp" 
       android:id="@+id/data_lbl_falana_dakana" /> 

     </LinearLayout> 

    </ScrollView> 

</RelativeLayout> 

Кроме того, свойство OnClick не работает, когда она определена (не сделано здесь, в коде публикуемую) и дает ошибку:

java.lang.IllegalStateException: Could not find method getOPD(View) in a parent or ancestor Context for android:onClick attribute defined on view class android.support.v7.widget.AppCompatButton with id 'data_btn_copy_opd_num'

Он реализован в классе со следующим синтаксисом:

public void getOPD(View view) { 
    Toast.makeText(this, "Some Stuff", Toast.LENGTH_LONG).show(); 
} 

ответ

1

Вместо использования v.getContext() try getBaseContext(). Это может решить проблему.

0

Возможно, ваш тост не работает. Вы пытались добавить простой журнал в свой onClick, чтобы проверить это?

Если это так, попробуйте ответить Chiro (getBaseContext()).

0

Toast.makeText (activityname.this, «Текстовое сообщение», Toast.LENGTH_LONG) .show();