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方法

    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大