Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>You have a lot of duplicating code. I suggest change intent day indicating extra type to int, and put your text resources into arrays with index = day number - 1. </p> <p>Also it is easier to read and maintain code if you implement onClickListener interface in your activity class instead of creating new object. </p> <p>Here is refactored version of your code, much shorter and clearer: </p> <pre><code>public class MyDay extends Activity implements View.OnClickListener { private Context mContext = this; private Button mButton; private TextView tv1, tv2, tv3, tv4; private int dayNumber; private Dialog mDialog; // this string should be in resources, like other below private final String[] tv1Resources = {"First day", "Second day", "Third day" , ...}; private final int[] tv3Resources = {R.string.day1, R.string.day2, R.string.day3 , ...}; private final int[] dialogTextResources = {R.string.torusim_places_1, R.string.torusim_places_2, R.string.torusim_places_3 , ...}; @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); } // note, now you should put integer extra, //not String, this extra is just day number -1, //for day1 this is 0, for day2 this is 1 etc. //In your case, probably this number == item position in listview of dayNumber = getIntent().getIntExtra("cheese", -1); previous activity if (dayNumber == -1){ finish(); //this needed if somehow you get invalid extra return; } initializeTextViews(); } @Override public void onClick(View v) { switch (v.getId()){ //actually this switch isn't needed because you have //only one button in this activity, but I wanted to show, // how you can maintain many onClick events here case R.id.city_button: // custom dialog // we use class field for avoid making final dialog local variable mDialog = new Dialog(mContext, R.style.cust_dialog); mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); mDialog.setContentView(R.layout.custom_dialog); // set the custom dialog components - text, image and button TextView text = (TextView) mDialog.findViewById(R.id.dialog_text); text.setTypeface(FontFactory.getBFantezy(getBaseContext())); text.setText(Html.fromHtml(getString(dialogTextResources[dayNumber]))); Button dialogButton = (Button) mDialog.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) { if (mDialog != null) mDialog.dismiss(); // check for aviod dialog null pointer } }); mDialog.show(); break; } } 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())); mButton = (Button) findViewById(R.id.city_button); mButton.setOnClickListener(this); tv1.setText(tv1Resources[dayNumber]); // due to code, this resource is the same for all days tv2.setText(Html.fromHtml(getString(R.string.beginning))); tv3.setText(Html.fromHtml(getString(tv3Resources[dayNumber]))); } 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); } } </code></pre> <p>Hope this helps.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload