2014-11-06 4 views
0

나는 안드로이드를 처음 접하고 기본적인 질문을했습니다.2 개의 별도 클래스에 2 개의 버튼 구현 안드로이드

ActionBarActivity에서 확장되고 해당 버튼에 대해 OnClickListener()를 구현하는 하나의 버튼을 BlockIdActivity 클래스에 만들었습니다. 별도의 버튼으로 ActionBarActivity에서 확장하고 또한 OnClickListener()를 구현하는 새로운 클래스를 만들고 싶었습니다. 내가 원하는 이유는 별도의 파일에있는 각 버튼에 의해 구현 된 로직을 분리하는 것입니다.

이 두 버튼은 동일한 레이아웃을 사용합니다. 즉, 동일한 페이지에 있습니다. 이것이 가능한가? 그렇지 않으면 내가 BlockIdActivity뿐만 아니라 두 번째 단추를 구현해야합니까?

BlockIdActivity.java의 내 버튼이 정상적으로 작동합니다. 두 번째 클래스 인 ScanWifi.java에서 두 번째 버튼을 구현했으며 버튼을 누른 것으로 표시되어야합니다. 나는 여기서 건배를 사용한다. 컴파일 오류가 발생하지 않습니다. 그러나 실제로 버튼을 누르면 내 축배를 보지 못합니다.

public class ScanWifi extends ActionBarActivity { 

private Button mScanWifiButton; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_block_id); 

    mScanWifiButton = (Button)findViewById(R.id.ScanWifiButton); 
    mScanWifiButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Toast.makeText(ScanWifi.this, 
        R.string.ScanWifi_toast, 
        Toast.LENGTH_SHORT).show(); 
     } 

}); 

} 

} strings.xml의 파일의

내용과 같습니다 : 내 ScanWifi 클래스는 실제로 ActionBarActivity을 확장 할 수있는 경우

<resources> 

    <string name="app_name">SnifferTrain</string> 
    <string name="BlockId">BlockId</string> 
    <string name="ScanWifi">ScanWifi</string> 
    <string name="ScanWifi_toast">ScanWifi Button Pressed</string> 
    <string name="negative_blockid_toast">Block Id Field Cannot Be Less Than 1 or Empty.Setting BlockID To 1</string> 
    <string name="action_settings">Settings</string> 

</resources> 

가 왜 토스트 아닌 여기 ScanWifi.java 파일의 내용입니다 ScanWifiButton을 누를 때 표시됩니까? 감사합니다

답변

0

내가 이것을하고 싶은 이유는 각 버튼으로 구현 된 로직을 별도의 파일로 분리하는 것입니다.

예, 당신은 onClick 방법의 차이 때문에 새로운 activity는, 이것을 달성하기 위해 만들 수있는 - 수단, 버튼이 다른 일을.

그러나 간단한 if-else 논리를 사용하여 button으로 다른 작업을 수행 할 수 있습니다. 예 :

나는 activity에 "저장"버튼이 있습니다. If 데이터는 이미 SQLite에 있으며, onCLick의 데이터를 업데이트합니다. else 데이터가 onclick의 SQLite에 삽입됩니다.

요점은 정말로 원하는 것을 무엇을 원하는지에 달려 있습니다. 여러 가지 작업을 수행하는 버튼 하나가 활동 클래스에서 길고 복잡한 코드를 작성합니다.

관련 문제