5

Android development: combining two Java files

 2 years ago
source link: https://www.codesd.com/item/android-development-combining-two-java-files.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Android development: combining two Java files

advertisements

I have two different java files and was wondering if there was a way to combine them so that both codes were in one file.

The below simply creates a dialog box that does nothing when no is clicked and moves to a new activity if yes is clicked:

package com.example.top_tech_deals;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class AlertDialogActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.post);

    Button btnAlertTwoBtns = (Button) findViewById(R.id.btnAlertWithTwoBtns);

    /**
     * Showing Alert Dialog with Two Buttons one Positive Button with Label
     * "YES" one Negative Button with Label "NO"
     */
    btnAlertTwoBtns.setOnClickListener(new View.OnClickListener() {

        public void onClick(View arg0) {
            // Creating alert Dialog with two Buttons

            AlertDialog.Builder alertDialog = new AlertDialog.Builder(AlertDialogActivity.this);

            // Setting Dialog Title
            alertDialog.setTitle("Confirm Delete...");

            // Setting Dialog Message
            alertDialog.setMessage("Are you sure you want delete this?");

            // Setting Icon to Dialog
            alertDialog.setIcon(R.drawable.delete);

            // Setting Positive "Yes" Button
            alertDialog.setPositiveButton("YES",
                    new DialogInterface.OnClickListener() {
                        public void onClick (DialogInterface dialog,int which) {
                            // Write your code  here to execute after dialog

                            Intent k = new  Intent(AlertDialogActivity.this, Camera.class);
                             startActivity(k);

                            Toast.makeText (getApplicationContext(), "You clicked on YES", Toast.LENGTH_SHORT).show();
                        }
                    });
            // Setting Negative "NO" Button
            alertDialog.setNegativeButton("NO",
                    new DialogInterface.OnClickListener() {
                        public void onClick (DialogInterface dialog,    int which) {
                            // Write your code  here to execute after dialog
                            Toast.makeText (getApplicationContext(), "You clicked on NO", Toast.LENGTH_SHORT).show();
                            dialog.cancel();
                        }
                    });

            // Showing Alert Message
            alertDialog.show();

        }
    });

}
}

This second code creates a drop down menu full of items the user can select:

package com.example.top_tech_deals;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;
import android.widget.AdapterView.OnItemSelectedListener;

public class AndroidSpinnerExampleActivity extends Activity implements OnItemSelectedListener{
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.spinex);

    // Spinner element
    Spinner spinner = (Spinner) findViewById(R.id.spinner);

    // Spinner click listener
    spinner.setOnItemSelectedListener(this);

    // Spinner Drop down elements
    List<String> categories = new ArrayList<String>();
    categories.add("Automobile");
    categories.add("Business Services");
    categories.add("Computers");
    categories.add("Education");
    categories.add("Personal");
    categories.add("Travel");

    // Creating adapter for spinner
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,  android.R.layout.simple_spinner_item, categories);

    // Drop down layout style - list view with radio button
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    // attaching data adapter to spinner
    spinner.setAdapter(dataAdapter);
}

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    // On selecting a spinner item
    String item = parent.getItemAtPosition(position).toString();

    // Showing selected spinner item
    Toast.makeText(parent.getContext(), "Selected: " + item, Toast.LENGTH_LONG).show ();

}

public void onNothingSelected(AdapterView<?> arg0) {
    // TODO Auto-generated method stub

}

}

Essentially what I want is one of my xml files to use both a dialog box and a drop down menu, however because I was having trouble putting both these codes into one java file I resorted to creating two different xml files, post.xml which is linked to AlertDialogActivity and spinex.xml which is linked to AndroidSpinnerExampleActivity. I tried linking the two java files to the same xml but I found that only one of the java files seemed to do anything, so I believe the only solution would be combining the two codes into one java file, but I always seem to get errors when I try this.


Each public class must be in a separate file, with filename the same as the class. But if you change one of your classes to be not public, then OK. I think best practice is to keep your files as they are. It's way better for future maintainability to have your classes in separate files, so that you can easily find your classes.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK