你好,我是一名新手Android开发者,想要通过菜单选项更改Activity中的TextView字体大小和颜色,但不知道该如何实现。
我创建了以下菜单项:
<item android:id="@+id/menu_item_share"
android:title="Share"
android:showAsAction="ifRoom|withText"
android:orderInCategory="100"
app:actionProviderClass="android.support.v7.widget.ShareActionProvider" />
<item android:id="@+id/display"
android:orderInCategory="100"
android:showAsAction="ifRoom|withText"
android:title="Display Option"
android:actionLayout="@layout/custom_setting" />
当我从当前布局菜单选项中点击“显示选项”时,会调用一个新的布局..在那个布局中,我创建了两个按钮,一个是“加号”按钮,另一个是“减号”按钮,我希望这些按钮可以更改前一个布局。
当我点击加号按钮时,文本视图文本需要更改,当我点击减号按钮时,文本视图大小将减小。
自定义布局代码当菜单项被点击时。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.example.aeiltech.sidd.CustomSetting" android:background="@mipmap/bg">
<ImageButton
android:layout_width="50dp"
android:layout_height="40dp"
android:background="@drawable/close"
android:layout_above="@+id/textView"
android:layout_toRightOf="@+id/minus"
android:layout_toEndOf="@+id/minus"
android:id="@+id/close" />
<ImageButton
android:layout_width="50dp"
android:layout_height="40dp"
android:background="@drawable/plusign"
android:layout_marginTop="110dp"
android:id="@+id/plus"
android:layout_alignParentTop="true"
android:layout_alignLeft="@+id/textView"
android:layout_alignStart="@+id/textView" />
<ImageButton
android:layout_width="50dp"
android:layout_height="40dp"
android:background="@drawable/minusign"
android:id="@+id/minus"
android:layout_alignTop="@+id/plus"
android:layout_alignRight="@+id/textView"
android:layout_alignEnd="@+id/textView" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Change Text Size"
android:id="@+id/textView"
android:layout_above="@+id/minus"
android:layout_centerHorizontal="true"
android:textColor="#FFFFFF" />
</RelativeLayout>
详情页面(此页面包含一个文本视图)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.detail_activity);
detailtext= (TextView) findViewById(R.id.detail);
dbHelper = new SqlLiteDbHelper(this);
try {
dbHelper.openDataBase();
} catch (SQLException e) {
e.printStackTrace();
}
sqLiteDatabase = dbHelper.getReadableDatabase();
cursor=dbHelper.getdetails(sqLiteDatabase, selectedData);
if(cursor.moveToFirst())
{
detailtext.setText(cursor.getString(0));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_detail, menu);
MenuItem shareItem = menu.findItem(R.id.menu_item_share);
mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(shareItem);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (id==R.id.display_option)
{
LayoutInflater layoutInflater= (LayoutInflater) getApplicationContext().getSystemService(LAYOUT_INFLATER_SERVICE);
layoutInflater.inflate(R.layout.custom_setting,null);
}
return super.onOptionsItemSelected(item);
}
为了更好地解释,这个问题与此App Crash When Trying to Change textsize in textView by clicking on button相同,是同一个应用程序和作者。