MyShining 2016-03-13 01:25 采纳率: 0%
浏览 1514

Android利用单例模式更改控件的属性,无法实现的问题

这是MainActivity中的代码,主要是加粗部分的代码,本打算通过Button的Onclick方法,来调用单例里边的Txtchange方法,来改变TextView的text,但是就是不法实现,求大神指点

package com.example.controlproject0311;

import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.os.Build;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // setContentView(R.layout.activity_main);
    RelativeLayout mainLayout = new RelativeLayout(this);
    mainLayout.setId(11);
    setContentView(mainLayout);
    Button button = new Button(this);
    button.setId(20);
    button.setText("hello");
    button.setTextSize(40);
    button.setTranslationX(50);
    button.setTranslationY(60);
    mainLayout.addView(button);

    final TextView txtView = new TextView(this);
    txtView.setText("one");
    txtView.setId(12);
    mainLayout.addView(txtView);

    button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // SingletonControl.getInstance().txtChange();
            Singleton2.getInstance().sayhello();
            ****Singleton2.getInstance().SetText(txtView.getId());
        }
    });

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}

}


这是单例的代码

package com.example.controlproject0311;

import android.app.Activity;
import android.widget.TextView;

public class Singleton2 extends Activity {
/* 持有私有静态实例,防止被引用,此处赋值为null,目的是实现延迟加载 */
private static Singleton2 instance = null;

/* 私有构造方法,防止被实例化 */
private Singleton2() {
}

/* 1:懒汉式,静态工程方法,创建实例 */
public static Singleton2 getInstance() {
    if (instance == null) {
        instance = new Singleton2();
    }
    return instance;
}

public void sayhello() {
    System.out.println("are you ok");
}

public void SetText(int id) {
    TextView textView = (TextView) findViewById(id);
    textView.setText("weew");
}

}


  • 写回答

2条回答 默认 最新

  • 东风玖哥 2016-03-14 01:32
    关注

    没发现Txtchange方法

    评论

报告相同问题?

悬赏问题

  • ¥15 把Excel导入MATLAB显示错误怎么解决?
  • ¥15 Java中消息和缓存如何使用
  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx