2017-01-27 108 views
-2

雖然設置我的點擊收聽特定按鈕命名轉換當我寫爲什麼我的代碼錯誤?

的代碼在瀏覽之間的空間給人以紅色下劃線和v

我是新來的Android工作室,並試圖通過搜索解決這個在谷歌,但沒有用。我在哪裏以及如何錯誤?

編輯1:我對錯誤進行了整理,顯然它是在我的實際代碼執行之前,onCreate有效終止onCreate時錯誤放置的大括號。不過現在它執行得很好,除了一個小小的缺陷,它不顯示輸出。我該怎麼辦?

代碼:

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


    final EditText inputNum = (EditText) findViewById(R.id.inputNum); 
    final TextView octNum = (TextView) findViewById(R.id.octNum); 
    final TextView binNum = (TextView) findViewById(R.id.octNum); 
    final TextView hexNum = (TextView) findViewById(R.id.octNum); 
    final Button convert = (Button) findViewById(R.id.convert); 
    View.OnClickListener listener = new OnClickListener() { 
     @Override 
     public void onClick(final View v) { 
      convert.setOnClickListener(new OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        int a = Integer.parseInt(inputNum.getText().toString()); 
        String bin = Integer.toBinaryString(a); 
        String oct = Integer.toOctalString(a); 
        String hex = Integer.toHexString(a); 
        octNum.setText(oct); 
        binNum.setText(bin); 
        hexNum.setText(hex); 
       } 
      }); 


     } 
    }; 
} 

@Override 
public void onClick(View v) { 

} 
+0

你想達到什麼目的?添加一個監聽器來轉換?什麼是你的''convert' convert.setOnClickListener(新View.OnClickListener(){ @覆蓋 公共無效的onClick(視圖v){ } });' –

+0

轉換爲一個按鈕的名稱(ID)。我應該上傳更多的代碼嗎? –

+0

檢查我的答案是你在找什麼? –

回答

2
convert.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       // handle your click event 
      } 
     }); 

編輯

的按鈕可以按下,或點擊,用戶要執行的操作!

活動中按鈕的典型用法如下: 。

public class MyActivity extends Activity { 
    protected void onCreate(Bundle icicle) { 
     super.onCreate(icicle); 
     setContentView(R.layout.content_layout_id); 

     final Button button = (Button) findViewById(R.id.button_id); 
     button.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       // Perform action on click 
      } 
     }); 
    } 
} 

然而,,而不是在您的活動施加OnClickListener到按鈕的,您可以在XML佈局的方法分配給您的按鈕,使用。 你正試圖實現某種東西,並與setOnClickListener混淆。你是?

現在,當用戶點擊按鈕時,Android系統會調用活動的myClickMethod(View)(即我創建的)方法。爲了使其發揮作用,該方法必須是公開的,並且接受View作爲其唯一參數。例如:

 <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:onClick="myClickMethod" 
     android:text="button" /> 

和代碼

public void myClickMethod(View view) { 
    // Perform action 
} 
+0

點擊的錯誤消失了,但是應用程序在android虛擬機啓動時仍然崩潰。致命例外主 –

+0

@Suhrid Mulay發佈錯誤日誌,所以我可以幫助 –

+0

我現在正在測試手機上的應用程序,以檢查AVD是否有問題。測試完成後相應更新問題 –

0

你不應該當你調用一個方法來指定參數類型。編譯器會自行解決或輸出錯誤。目前,AndroidStudio認爲您正試圖將兩個參數「View」和「v」傳遞給該方法,並忘記了它們之間的逗號。

將呼叫替換爲convert.setOnClickListener(v),並且錯誤消息將變得更清晰,即setOnClickListener未使用類型View的參數定義。

1

你應該提供一個像這樣的onClickListener的新實例。

convert.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      //Code here 
     } 
    });