2016-06-15 4 views
1

У меня есть небольшая проблема, которая для меня невозможна. У меня много табличных речей, называемых Radek_X, и они установлены как android:visibility="gone". И мне это нужно, если вы в первый раз, нажмите кнопку (есть только одна кнопка для этого процесса), она изменит Radek_1 на android:visibility="visible", если вы нажмете на кнопка во второй раз изменит Radek_2 от пропавшего до видимого, а Radek_1 все еще будет виден. И так далее для всех остальных TableRows. Я действительно в отчаянии. Я буду очень благодарен за любую помощь! Хорошего дня!Android: On Click постепенное изменение видимости

Вот мой Java файл

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

Это на самом деле проще, чем вы думаете, изменить метод OnClick, который я предполагаю, вы устанавливаете на XML, чтобы PridejDalsiStaniceniClicked к этому:

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++; 
    } 
} 

Что происходит внутри, так это то, что мы получим представление, которое соответствует счетчику времени, нажатого, пока в массиве все еще видны. Некоторые люди не понимают, что идентификаторы вида являются целыми числами и могут храниться в массиве, как в примере.

+0

Он работает, спасибо вам, сэр! Но могу ли я задать второй вопрос? Как исправить это приложение после того, как оно исчерпало все табло? Я знаю, что это, по-видимому, глупый вопрос, но я новичок в программировании на Android. –

+0

Я не должен терпеть неудачу, если идентификаторы представлений верны, чтобы исключить исключения, мы имеем оператор if –

 Смежные вопросы

  • Нет связанных вопросов^_^