0

我有一个带有三个图标的线性布局,如下所示

 <ImageView
            android:id="@+id/cities"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content          
            android:src="@drawable/city" />

        <ImageView
            android:id="@+id/red"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"           
            android:src="@drawable/red"
            android:visibility="gone" 
            />
        <ImageView
            android:id="@+id/deal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"       
            android:src="@drawable/deal" />

最初中间图标是隐藏的(android:visibility =“gone”)我有一个登录屏幕..登录成功时我希望图标可见..如下所示..但它不起作用

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.fyelogin);                    
    etPassword = (EditText)findViewById(R.id.password);
    btnLogin = (Button)findViewById(R.id.login_button);
    btnCancel = (Button)findViewById(R.id.cancel_button);
    lblResult = (TextView)findViewById(R.id.result);

    final ImageView details = (ImageView)findViewById(R.id.red); 

    btnLogin.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {

            String password = etPassword.getText().toString();

            if(password.equals("guest")){
                lblResult.setText("password successful.");

    giving error @ this line  ----->  details.setVisibility(View.VISIBLE);

            } else {
                lblResult.setText("password doesn't match.");
            }

            finish();
        }
    });
4

2 回答 2

2

您应该将 ImageView 详细信息对象设为类变量,以便您的侦听器稍后可以访问它。

于 2012-11-29T06:10:37.500 回答
0

试试这个,

ImageView details;
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.fyelogin);                    
        etPassword = (EditText)findViewById(R.id.password);
        btnLogin = (Button)findViewById(R.id.login_button);
        btnCancel = (Button)findViewById(R.id.cancel_button);
        lblResult = (TextView)findViewById(R.id.result);
        details = (ImageView)findViewById(R.id.red); 

        btnLogin.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {

                String password = etPassword.getText().toString();

                if(password.equals("guest")){
                    lblResult.setText("password successful.");

                     details.setVisibility(View.VISIBLE);

                } else {
                    lblResult.setText("password doesn't match.");

                }

                finish();} });
于 2012-11-29T06:25:13.383 回答