2016-09-07 5 views
0

레이아웃 파일에 10 개의 버튼을 만들었으므로 이제이를 찾고 "Array"에 저장하려고합니다. 이제는 각 Button I 프레스가 다른 작업을 수행 할 수 있도록 각기 다른 OnClickListener를 추가하려고합니다. (제 경우에는 0-9에서 값을 제출하여 첫 ​​번째 버튼은 0, 두 번째는 1 등).for 루프를 사용하여 버튼에서 onClickListener 찾기 및 설정 [Android]

package de.lucbe.tilt; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 

public class MainActivity extends AppCompatActivity{ 

Button[] buttons = new Button[10]; 

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


    for(int i = 0;i < buttons.length; i++){ 
     String buttonID = "button" + i; 
     int resID = getResources().getIdentifier(buttonID, "id", getPackageName()); 
     buttons[i] = ((Button) findViewById(resID)); 
    } 
} 

}

사전에 감사 : 여기까지가 내 코드입니다. 에에서

답변

0
for(int i = 0;i<buttons.length;i++){ 
     Button = buttons[i]; 
     Button.setId(i); 
     Button.setOnClickListener(this); 
    } 

ID : 거기 번호가 발생합니다 버튼을 클릭

0

당신이 당신의 MainActivity 클래스OnClickListener을 구현할 수있는 일을 간단하게하려면

public class MainActivity extends AppCompatActivity implements View.OnClickListener 
    { 

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

     f1 =(Button) findViewById(R.id.f1); 
     f1.setOnClickListener(this); 

     f2 =(Button) findViewById(R.id.f2); 
     f2.setOnClickListener(this); 
    } 
} 

는 그런 다음에이 onClick 메서드를 덮어 쓰고 스위치를 view.getId() :

@Override 
public void onClick(View v) { 
    switch (v.getId()) { 
    case R.id.f1: 
     // your code here 
     break; 
    case R.id.f2: 
     // your code here 
     break; 
    } 
} 
0

추가 루프가 필요 없습니다. 루프 자체에서 초기화 한 후 다음 줄을 입력하십시오. buttons [i] .setOnClickListener (this);

OnClickListener ineferfave를 구현 한 다음 overridited onClick 메서드 내에서 다양한 id에 대한 스위치 케이스를 넣으십시오.