2016-06-15 5 views
1

나는 해결이 불가능한 약간의 문제가 있습니다. 나는 Radek_X 라 불리는 많은 TableRows를 가지고 있고 그것들은 android:visibility="gone". 으로 설정되어 있습니다. 그리고 처음으로 버튼을 클릭하면 (그 프로세스에 대한 단 하나의 버튼이 있습니다) 클릭하면 Radek_1이 android:visibility="visible"으로 바뀝니다. 두 번째 버튼은 Radek_2가 사라 졌음을 Radek_1이 보이도록 변경합니다. 다른 모든 TableRow에 대해서도 마찬가지입니다. 나는 정말로 필사적이다. 어떤 도움을 주셔서 감사합니다! 좋은 하루 되세요! 여기 안드로이드 : 클릭 점진적 가시성 변경

내 자바 파일 그것은 당신이, 당신이에 PridejDalsiStaniceniClicked에 XML로 설정하는 가정 당신의 onclick 방법 변경, 생각하는 것보다 실제로 쉽게

package jansoldat.formular100; 

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

import java.util.ArrayList; 

public class MainActivity extends AppCompatActivity { 

    Button buttonPridejStaniceni; 
    TableRow Radek_2, Radek_3, Radek_4,Radek_5,Radek_6; 

    @Override 
    private ArrayList<String> arrayList; 
    private ArrayAdapter<String> adapter; 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     buttonPridejStaniceni = (Button) findViewById(R.id.buttonPridejStaniceni); 
     Radek_2 = (TableRow) findViewById(R.id.Radek_2); 
     Radek_3 = (TableRow) findViewById(R.id.Radek_3); 
     Radek_4 = (TableRow) findViewById(R.id.Radek_4); 
     Radek_5 = (TableRow) findViewById(R.id.Radek_5); 
     Radek_6 = (TableRow) findViewById(R.id.Radek_6); 

    } 

    public void PridejDalsiStaniceniClicked(View v) 
    { 
     Radek_2.setVisibility(View.VISIBLE); 
     Radek_3.setVisibility(View.VISIBLE); 
     Radek_3.setVisibility(View.VISIBLE); 
     Radek_4.setVisibility(View.VISIBLE); 
     Radek_5.setVisibility(View.VISIBLE); 
     Radek_6.setVisibility(View.VISIBLE); 
    } 
} 


` 

답변

1

입니다 :

int[] views = new int[]{R.id.Radek_2,R.id.Radek_3,R.id.Radek_4};//... 
int counter = 0; 
public void PridejDalsiStaniceniClicked(View v) 
{ 
    findViewById(views[counter]).setVisibility(View.VISIBLE); 
    if(counter<views.length){ 
     counter++; 
    } 
} 

무엇 배열 내부에 뷰가있는 동안 눌려 진 시간 카운터와 일치하는 뷰를 가져올 것입니다. 일부 사람들은 뷰 ID가 인 정수이며 예제와 같은 배열에 저장할 수 있음을 인식하지 못합니다.

+0

정말 고마워요! 하지만 두 번째 질문을 할 수 있을까요? 모든 tablerows를 고갈시킨 후 해당 응용 프로그램을 수정하는 방법은 무엇입니까? 나는 그것이 분명히 바보 같은 질문 인 것을 안다. 그러나 나는 안드로이드 프로그래밍의 새로운 것이다. –

+0

뷰의 id가 정확하면 예외를 방지하기 위해 if 문을 사용해야합니다. –