首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当传递给另一个类时缺少值- Android?

当传递给另一个类时缺少值- Android?
EN

Stack Overflow用户
提问于 2015-10-13 08:07:22
回答 1查看 104关注 0票数 0

我将一个值传递给另一个类,得到另一个类中的值,但是当我使用该值时,它会显示0

代码语言:javascript
复制
public class MaterialSpinner extends Spinner implements ValueAnimator.AnimatorUpdateListener {

    public int widths;

    public MaterialSpinner(Context context, int width) {
        super(context);
        this.widths = width;
        // **HERE SHOW ME VALUE FOR EXAMPLE 596**
        Log.i("LOG-1", String.valueOf(widths));
        init(context, null);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        //BUT HERE GET ME 0**
        int startX = this.widths;
        Log.i("LOG-2", String.valueOf(widths));
     }
}

我还有其他的建设者:

代码语言:javascript
复制
public MaterialSpinner(Context context, AttributeSet attrs) {
    super(context, attrs);
    init(context, attrs);
}

public MaterialSpinner(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
    init(context, attrs);
}

下面是我的活动;我将值从这里传递给MaterialSpinner类:

代码语言:javascript
复制
public class StartActivity extends AppCompatActivity {

    Context context;
    private ArrayAdapter<String> adapter;
    int width;
    int height;
    MaterialSpinner spinner1;

    private boolean shown = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_start);
        context = this;
        if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB_MR2) {
            Display display = getWindowManager().getDefaultDisplay();
            width = display.getWidth();
            height = display.getHeight();

        }
        else {
            Display display = getWindowManager().getDefaultDisplay();
            Point size = new Point();
            display.getSize(size);
            width = size.x;
            height = size.y;
        }
        new MaterialSpinner(context, width);
        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, ITEMS);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        initSpinnerHintAndFloatingLabel();
    }

    private void initSpinnerHintAndFloatingLabel() {
        spinner1 = (MaterialSpinner) findViewById(R.id.spinner1);
        spinner1.setAdapter(adapter);
        spinner1.setPaddingSafe(0, 0, 0, 0);
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-13 08:34:37

您正在创建一个对象,您对它不做任何操作:

代码语言:javascript
复制
new MaterialSpinner(context,width);

在另一个函数中,您可以这样做:

代码语言:javascript
复制
spinner1 = (MaterialSpinner) findViewById(R.id.spinner1);

这将使对象从activity_start布局中膨胀。更容易的方法是创建一个setWidth()函数,并在充气View之后调用它

代码语言:javascript
复制
spinner1 = (MaterialSpinner) findViewById(R.id.spinner1);
spinner1.setWidth(width);

编辑:并删除new MaterialSpinner(context,width);,因为它什么也不做

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33097344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档