2016-07-01 18 views
1

我面臨兩個問題按鈕「myButton的」從未使用過

  • 我有Android Studio中,我的按鈕是從未使用過的消息:buttonSand和buttonLehm

這裏是我的代碼

import android.content.Context; 
import android.net.Uri; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.view.LayoutInflater; 
import android.widget.TextView; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.Button; 

public void buttonLehm(View view) { 
    TextView tv = (TextView) getView().findViewById(R.id.lehmBodenTextView); 
    if(tv.getVisibility() == View.INVISIBLE) 
    { 
     tv.setVisibility(View.VISIBLE); 
    } 
    else 
    { 
     tv.setVisibility(View.INVISIBLE); 
    } 
} 

public void buttonSand(View view) { 
    TextView tv = (TextView)getView().findViewById(R.id.sandBodenTextView); 
    if(tv.getVisibility() == View.INVISIBLE) 
    { 
     tv.setVisibility(View.VISIBLE); 
    } 
    else 
    { 
     tv.setVisibility(View.INVISIBLE); 
    } 
} 

,如果我跑我的代碼,並獲得該片段,並想測試我的按鈕,我收到此錯誤信息:

AndroidRuntime:致命例外:main java.lang.IllegalStateException:無法在父級或祖先中查找方法buttonLehm(View)上下文中的android:onClick屬性在視圖類android.support.v7.widget.AppCompatButton上定義ID 'lehmBodenButton' 在android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.resolveMethod(AppCompatViewInflater.java:325) 在android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284) 在android.view.View.performClick(View.java:5198) at android.view.View $ PerformClick.run(View.java:21147) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726 ) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

下面是XML的文件

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="#2fb215" 
android:columnOrderPreserved="true" 
android:tag="BodenFragment" 
android:id="@+id/bodenFragment"> 


<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/bodenArtenString" 
    android:id="@+id/bodenSeiteUeberschrift" 
    android:layout_row="0" 
    android:layout_column="0" 
    android:textSize="40dp" 
    android:textAlignment="center" /> 

<Button 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/lehmBodenString" 
    android:id="@+id/lehmBodenButton" 
    android:layout_row="1" 
    android:layout_column="0" 
    android:onClick="buttonLehm"/> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/lehmBodenTextString" 
    android:id="@+id/lehmBodenTextView" 
    android:layout_row="2" 
    android:layout_column="0" 
    android:visibility="invisible" /> 

<Button 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/sandBodenString" 
    android:id="@+id/sandBodenButton" 
    android:layout_row="3" 
    android:layout_column="0" 
    android:onClick="buttonSand" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/sandBodenTextString" 
    android:id="@+id/sandBodenTextView" 
    android:layout_row="4" 
    android:layout_column="0" 
    android:visibility="invisible" /> 

我希望我把足夠的代碼了這麼有人能幫助我與我的問題。我不知道這是否有幫助,但是在某處我得到了ErrorMessage,我必須導入android.widget.View而不是android.view.View,但是我需要這兩者,並且我現在無法在此處重現此錯誤以進行澄清。

感謝

+0

你能否提供片段和活動的代碼? – babadaba

+0

你的'onCreateView'方法是什麼樣的? – StuStirling

+0

這是完整的代碼嗎?你需要將你的方法放在一個類中。在java中沒有類沒有功能。 – miva2

回答

0

判斷,這只是部分代碼,看到你做import android.support.v4.app.Fragment;我的猜測是,你把一個Fragment這兩個方法。問題是檢查Activity中的方法。所以你只需要做的就是移動從片段活動這兩個方法中的片斷。另見How to handle button clicks using the XML onClick within Fragments

+0

是的,謝謝。在我有機會查看我的問題是否得到解答之前,我只是自己找到了它。 這正是我的問題。 – Adije

-1
static TextView tv = (TextView) getView().findViewById(R.id.lehmBodenTextView); 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    View v; 
    //add button onclicklistener with: 
    buttonLehm(v); 
    buttonSand(v); 
} 
+1

請解釋你的答案。在SO上不鼓勵使用僅有代碼的答案。謝謝。 –

0

它看起來像你的按鈕代碼是在片段。您需要將其更改爲「活動」中的點擊式方法才能工作。