Android:点击可见性逐渐变化
Android: On Click gradual visibility change
我遇到了一个我无法解决的小问题。我有很多名为 Radek_X 的 TableRows,它们被设置为 android:visibility="gone".
我需要,如果你是第一次,点击按钮(该过程只有一个按钮)它会将 Radek_1 更改为 android:visibility="visible"
如果您第二次单击该按钮,它将 Radek_2 从消失变为可见,而 Radek_1 仍然可见。对于所有其他 TableRow,依此类推。我真的很绝望。我将非常感谢任何帮助!祝你有美好的一天!
这是我的 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);
}
}
`
实际上比您想象的要容易,更改您的 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++;
}
}
里面发生的事情是,当数组中仍有视图时,我们将获取与按下次数计数器相匹配的视图。 有些人没有意识到视图 ID 是整数,并且可以像示例中那样存储在数组中。
我遇到了一个我无法解决的小问题。我有很多名为 Radek_X 的 TableRows,它们被设置为 android:visibility="gone".
我需要,如果你是第一次,点击按钮(该过程只有一个按钮)它会将 Radek_1 更改为 android:visibility="visible"
如果您第二次单击该按钮,它将 Radek_2 从消失变为可见,而 Radek_1 仍然可见。对于所有其他 TableRow,依此类推。我真的很绝望。我将非常感谢任何帮助!祝你有美好的一天!
这是我的 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);
}
}
`
实际上比您想象的要容易,更改您的 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++;
}
}
里面发生的事情是,当数组中仍有视图时,我们将获取与按下次数计数器相匹配的视图。 有些人没有意识到视图 ID 是整数,并且可以像示例中那样存储在数组中。