2017-01-16 40 views
0

剛剛做了一個按鈕,點擊事件打開一個網頁鏈接,在這個佈局上有多個按鈕。現在我想複製第一個按鈕的事件以將其用於其他人。但是當我複製代碼並將名稱替換爲另一個按鈕時,我收到了一些錯誤。問題是什麼?;試圖複製點擊事件

public class FourthFragment extends Fragment { 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fourth_layout, container, false); 
    final Button button2 = (Button) view.findViewById(R.id.button2); 
    button2.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://maurick.magister.net")); 
      startActivity(browserIntent); 
     } 

    }); 
    return view; 

    final Button button3 = (Button) view.findViewById(R.id.button3); 
//a red line is showing line above 
    button3.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://maurickcollege.net")); 
      startActivity(browserIntent); 
     } 

    }); 
    return view; 

} 
} 
+0

這不是Android的吳 – Frogger

回答

0

兩個return view陳述。 這使得下面的代碼無用。這是錯誤

2

您的第一個return view語句導致此方法返回。 所以你的代碼在這個語句下面不會被執行。你的IDE應該顯示錯誤信息Unreachable statement

要將兩個監聽器: 只創建一個監聽器,並將其設置爲兩種觀點:

View.OnClickListener listener = new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://maurickcollege.net")); 
     startActivity(browserIntent); 
    } 
} 
view.findViewById(R.id.button2).setOnClickListener(listener); 
view.findViewById(R.id.button3).setOnClickListener(listener); 
0

而不是使用新的OnClickListener, 在你的類實現View.OnClickListener, 這將創建一個通用的方法所有點擊事件

在哪裏這樣的..

@Override 
public void onClick(View v) { 
    switch (v.getId()){ 
     case R.id.button_1: 
     case R.id.button_2: 
      //your common action goes here which will be executed for both buttons 
    } 
}