简体   繁体   English

如何更改按钮上单击的textView的文本大小?

[英]how to change textsize of a textView on button Click?

i have a viewpager where i am displaying some texts. 我有一个viewpager,我正在其中显示一些文本。 i also have a button for which i want to change TextSize of the textview in viewpager when it is clicked. 我也有一个按钮,当单击它时,我想为其更改viewviewr中textview的TextSize。 This is my code: 这是我的代码:

public class SrtSample extends Activity {

LayoutInflater inflater ;
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.full_image);

    ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
    viewPager.setBackgroundColor(0xff000000);
    SlideSrt adapter = new SlideSrt(this);
    viewPager.setAdapter(adapter);

Button b= (Button) findViewById(R.id.pgtpics);

b.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // Dont know what to write here. 
        // This is the code i am using here but its not working.
inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            View vi = inflater.inflate(R.layout.MyLayout, null); 
            TextView tv = (TextView)vi.findViewById(R.id.tv);
            tv.setTextSize(25);
    }
}); 

}

}

And this is my pagerAdapter class for viewpager: 这是我的viewpager的pagerAdapter类:

public class SlideSrt extends PagerAdapter {
Context context;
LayoutInflater inflater;

String s1 = "Text1";
String s2 = "Text2";
String s3 = "Text3";
String s4 = "Text4";
String s5 = "Text5";

String allStrings[] = {s1,s2,s3,s4,s5} 

//Constructor
SlideSrt(Context context) {
    this.inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

}
@Override
public int getCount() {
    return allString.length;
}

@Override
public boolean isViewFromObject(View view, Object object) {
    return view == ((LinearLayout) object);
}

public Object instantiateItem(ViewGroup container, int position) {

    View itemview;
    itemview = inflater.inflate(R.layout.MyLayout, container, false);
    TextView tv= (TextView) itemview.findViewById(R.id.tv);

  tv.setText(allsrt[position]);

    ((ViewPager) container).addView(itemview, 0);

    return itemview;

}


@Override
public void destroyItem(ViewGroup container, int position, Object object) {
    ((ViewPager) container).removeView((View) object);
}
}

When i am clicking the button, Nothing happens. 当我单击按钮时,没有任何反应。 The textSize remains same. textSize保持不变。 I must be doing something wrong in my OnclickListener method. 我的OnclickListener方法一定做错了。 Or there must be some other way of doing it. 否则必须有其他方法。 Please help me. 请帮我。 i've been trying to solve this but no luck. 我一直在试图解决这个问题,但没有运气。

In your onClick method, you are inflating R.layout.MyLayout but you are not attaching it to a visible parent. 在您的onClick方法中,您正在夸大R.layout.MyLayout但没有将其附加到可见的父级。 So your TextView is not actually visible anywhere. 因此,您的TextView实际上在任何地方都不可见。 Instead of inflating the layout, call findViewById on the view containing your TextView. 而不是夸大布局,而是在包含TextView的视图上调用findViewById

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM