我在一个活动中有多个对话框,每个东西都运行完美,对话框文字 可以
通过添加html标记从( string.xml )完全自定义。
活动代码:
public class MyDay extends Activity {
final Context context = this;
private Button button;
TextView tv1,tv2,tv3,tv4;
String day;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.Layou
tParams.FLAG_FULLSCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Boolean customTitleSupported =
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.day);
if (customTitleSupported) {
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.custom_title);
}
initializeTextViews();
}
private void initializeTextViews() {
tv1=(TextView)findViewById(R.id.title_tv1);
tv1.setTypeface(FontFactory.getBFantezy(getBaseContext()));
tv2=(TextView)findViewById(R.id.day_tv1);
tv2.setTypeface(FontFactory.getBFantezy(getBaseContext()));
tv3=(TextView)findViewById(R.id.day_tv3);
tv3.setTypeface(FontFactory.getBFantezy(getBaseContext()));
day=getIntent().getStringExtra("cheese");
if(day.equalsIgnoreCase("Day1")){
tv1.setText("First Day");
tv2.setText(Html.fromHtml(getString(R.string.beginning)));
tv3.setText(Html.fromHtml(getString(R.string.day1)));
button = (Button) findViewById(R.id.city_button);
button.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
// custom dialog
final Dialog dialog = new Dialog(context,R.style.cust_dialog);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.custom_dialog);
// set the custom dialog components - text, image and button
TextView text = (TextView) dialog.findViewById(R.id.dialog_text);
text.setTypeface(FontFactory.getBFantezy(getBaseContext()));
text.setText(Html.fromHtml(getString(R.string.torusim_places_1)));
Button dialogButton = (Button) dialog.findViewById(R.id.dialog_Button);
dialogButton.setTypeface(FontFactory.getBFantezy(getBaseContext()));
dialogButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
});
}
else if(day.equalsIgnoreCase("Day2")){
tv1.setText("Second Day");
tv2.setText(Html.fromHtml(getString(R.string.beginning)));
tv3.setText(Html.fromHtml(getString(R.string.day2)));
button = (Button) findViewById(R.id.city_button);
button.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
// custom dialog
final Dialog dialog = new Dialog(context,R.style.cust_dialog);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.custom_dialog);
TextView text = (TextView) dialog.findViewById(R.id.dialog_text);
text.setTypeface(FontFactory.getBFantezy(getBaseContext()));
text.setText(Html.fromHtml(getString(R.string.torusim_places_2)));
Button dialogButton = (Button) dialog.findViewById(R.id.dialog_Button);
dialogButton.setTypeface(FontFactory.getBFantezy(getBaseContext()));
// if button is clicked, close the custom dialog
dialogButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
});
}
else if(day.equalsIgnoreCase("Day3")){
tv1.setText("Third Day");
tv2.setText(Html.fromHtml(getString(R.string.beginning)));
tv3.setText(Html.fromHtml(getString(R.string.day3)));
button = (Button) findViewById(R.id.city_button);
button.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
// custom dialog
final Dialog dialog = new Dialog(context,R.style.cust_dialog);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.custom_dialog);
TextView text = (TextView) dialog.findViewById(R.id.dialog_text);
text.setTypeface(FontFactory.getBFantezy(getBaseContext()));
text.setText(Html.fromHtml(getString(R.string.torusim_places_3)));
Button dialogButton = (Button) dialog.findViewById(R.id.dialog_Button);
dialogButton.setTypeface(FontFactory.getBFantezy(getBaseContext()));
// if button is clicked, close the custom dialog
dialogButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
});
}
}
// this continuing repeated till day 20 //
public void handleClick(View v){
Intent intent = new Intent();
intent.setClass(this,DayGallery.class);
intent.putExtra("dayname",day);
startActivity(intent);
}
}
String.xml:
<string name="torusim_places_1">
<![CDATA[
<b><font color=#008000>* </b>This is <b><font color=#008080>First</b> line in
dialog <br/>
<b><font color=#ff00ff>* </b>This is <b><font color=#FDD017>Second</b> line in
dialog <br/>
<b><font color=#0000FF>* </b>This is <b><font color=#808000>Third</b> line in
dialog <br/>
<b><font color=#59C9FA>* </b>This is <b><font color=#0000A0>Fourth</b> line in
dialog <br/>
]]>
</string>
输出图片:
但我有20行,所以我添加了20次对话,这是多余的,它的工作正常,但我认为有比我做的更好的方法,
根据我之前提问的回答 Set custom dialog once into activity
我将答案代码应用如下:
public class MyDay extends Activity {
final Context context = this;
private Button button;
TextView tv1,tv2,tv3,tv4;
String day;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Boolean customTitleSupported = requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.day);
if (customTitleSupported) {
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.custom_title);
}
initializeTextViews();
}
private void initializeTextViews() {
tv1=(TextView)findViewById(R.id.title_tv1);
tv1.setTypeface(FontFactory.getBFantezy(getBaseContext()));
tv2=(TextView)findViewById(R.id.day_tv1);
tv2.setTypeface(FontFactory.getBFantezy(getBaseContext()));
tv3=(TextView)findViewById(R.id.day_tv3);
tv3.setTypeface(FontFactory.getDroidNaskh(getBaseContext()));
day=getIntent().getStringExtra("cheese");
if(day.equalsIgnoreCase("Day1")){
tv1.setText("First Day");
tv2.setText(Html.fromHtml(getString(R.string.beginning)));
tv3.setText(Html.fromHtml(getString(R.string.day1)));
button = (Button) findViewById(R.id.city_button);
button.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
dialogCreation(Html.fromHtml(getString(R.string.torusim_places_1)).toString());
}
});
}
else if(day.equalsIgnoreCase("Day2")){
tv1.setText("Second Day");
tv2.setText(Html.fromHtml(getString(R.string.beginning)));
tv3.setText(Html.fromHtml(getString(R.string.day2)));
button = (Button) findViewById(R.id.city_button);
button.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
dialogCreation(Html.fromHtml(getString(R.string.torusim_places_2)).toString());
}
});
}
else if(day.equalsIgnoreCase("Day3")){
tv1.setText("Third Day");
tv2.setText(Html.fromHtml(getString(R.string.beginning)));
tv3.setText(Html.fromHtml(getString(R.string.day3)));
button = (Button) findViewById(R.id.city_button);
button.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
dialogCreation(Html.fromHtml(getString(R.string.torusim_places_3)).toString());
}
});
}
}
// this continuing repeated till day 20 //
public void handleClick(View v){
//Create an intent to start the new activity.
Intent intent = new Intent();
intent.setClass(this,DayGallery.class);
intent.putExtra("dayname",day);
startActivity(intent);
}
public void dialogCreation(String arg0) {
// custom dialog
final Dialog dialog = new Dialog(context,R.style.cust_dialog);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.custom_dialog);
// set the custom dialog components - text, image and button
TextView text = (TextView) dialog.findViewById(R.id.dialog_text);
text.setTypeface(FontFactory.getBFantezy(getBaseContext()));
text.setText(arg0);
Button dialogButton = (Button) dialog.findViewById(R.id.dialog_Button);
dialogButton.setTypeface(FontFactory.getBFantezy(getBaseContext()));
dialogButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
}
但我有一个问题,答案代码是无知字体颜色标记与相同( string.xml )
因此所有单词都采用了一种在R.layout.custom_dialog中设置的颜色。
String.xml:
<string name="torusim_places_1">
<![CDATA[
<b><font color=#008000>* </b>This is <b><font color=#008080>First</b> line in
dialog <br/>
<b><font color=#ff00ff>* </b>This is <b><font color=#FDD017>Second</b> line in
dialog <br/>
<b><font color=#0000FF>* </b>This is <b><font color=#808000>Third</b> line in
dialog <br/>
<b><font color=#59C9FA>* </b>This is <b><font color=#0000A0>Fourth</b> line in
dialog <br/>
]]>
</string>
输出图片:
任何帮助将不胜感激,谢谢
答案 0 :(得分:0)
我试过这种方式:它给了我(三星Galaxy Note N7000)橙色*和绿色的“第一”字
<string name="torusim_places_1">
<![CDATA[<b><font color="#FF8000"> * </font></b>This is <b><font color="#008080">First</font></b>line in
dialog<br />]]>
</string>
String的Instand将dialogCreate的参数传递给int:
public void dialogCreation(int arg0) {
// custom dialog
final Dialog dialog = new Dialog(context,R.style.cust_dialog);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.custom_dialog);
// set the custom dialog components - text, image and button
TextView text = (TextView) dialog.findViewById(R.id.dialog_text);
text.setTypeface(FontFactory.getBFantezy(getBaseContext()));
text.setText(Html.fromHtml(getStrint(arg0));
Button dialogButton = (Button) dialog.findViewById(R.id.dialog_Button);
dialogButton.setTypeface(FontFactory.getBFantezy(getBaseContext()));
dialogButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
并将其称为dialogCreation(R.string.torusim_places_1);