生成Id Android Studio的最佳做法

时间:2016-06-22 21:25:21

标签: android

TextView textView = new TextView(this);
        textView.setText(R.string.textView);
        textView.setId(View.generateViewId());


Button blueButton = new Button(this);
        blueButton.setOnClickListener(
                new Button.OnClickListener() {
                    public void onClick(View view) {
// I can't textView.getId() because textView isn't in this scope
                            TextView textView = (TextView) findViewById(textView.getId());
                            textView.setText("You clicked the Button!");

                        }
                    }
            );

我的问题是:如何生成ID,而不仅仅是硬编码一些幻数

ie:textView.setId(1);

如果变量的范围已经死亡,仍然能够实际访问Id。

答案:您可以使用blueButton.setTag(textView)然后在onClick(View视图)方法中,可以调用view.getTag();

2 个答案:

答案 0 :(得分:1)

您必须在处理程序onClick上实例化TextView。

TextView tv;

//onCreate
tv = (TextView) findView...

tv.setOnClickListener(new ...)
//onClick
tv.setText("");

你用这种方式引用xml id:

findViewById(R.id.myTextView);

答案 1 :(得分:-3)

要访问该范围内的TextView,请将其更改为:

public static Textview myTextView;