0

我有两个不同的 java 文件,想知道是否有办法将它们组合在一起,以便两个代码都在一个文件中。

下面简单地创建一个对话框,当单击 no 时不执行任何操作,如果单击 yes,则移动到新活动:

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();

        }
    });

}
}

第二个代码创建了一个下拉菜单,其中包含用户可以选择的项目:

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

}

}

基本上我想要的是我的 xml 文件之一同时使用对话框和下拉菜单,但是因为我无法将这两个代码放入一个 java 文件中,所以我求助于创建两个不同的 xml 文件 post.xml 这是链接到 AlertDialogActivity 和 spinex.xml,后者链接到 AndroidSpinnerExampleActivity。我尝试将两个 java 文件链接到同一个 xml,但我发现只有一个 java 文件似乎可以做任何事情,所以我相信唯一的解决方案是将两个代码合并到一个 java 文件中,但我似乎总是出错当我尝试这个时。

4

3 回答 3

1

每个公共类必须在一个单独的文件中,文件名与该类相同。但是,如果您将其中一门课程更改为不公开,那么可以。我认为最佳做法是保持文件原样。将类放在单独的文件中对将来的可维护性更好,这样您就可以轻松找到您的类。

于 2012-12-08T16:09:18.447 回答
1

基本上我想要的是我的 xml 文件之一同时使用对话框和下拉菜单,但是因为我无法将这两个代码放入一个 java 文件中,所以我求助于创建两个不同的 xml 文件 post.xml 这是链接到 AlertDialogActivity 和 spinex.xml,后者链接到 AndroidSpinnerExampleActivity。

请按照以下步骤操作:

  • 创建一个包含 aButton和 a的布局文件Spinner
  • 创建一个扩展Activity并实现OnItemSelectedListener接口的类
  • 将之前创建的布局设置为上面 Activity 的内容视图
  • onCreate您将拥有的方法中:

    setContentView(R.layout.combinedlayout); 
    // must be in the combinedlayout
    Button btnAlertTwoBtns = (Button) findViewById(R.id.btnAlertWithTwoBtns);
    btnAlertTwoBtns.setOnClickListener(new View.OnClickListener() {
       // the rest of the listener code from your first class.
    }
    // must be in the combinedlayout
    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);
    
于 2012-12-08T16:12:21.993 回答
1

我对你的问题有点困惑。你想组合这些活动,以便你有一个活动,同时打开对话框的按钮和屏幕上的微调器?如果是这样,你应该能够做到这一点。

只需制作一个包含按钮和微调器的 xml 文件:

<Button
    .... />

<Spinner
    .... />

然后,您可以只拥有一个引用微调器和按钮的 Activity,填充微调器并将 onItemSelectedListener 分配给微调器。您可以像以前一样处理按钮。

import android.widget.AdapterView.OnItemSelectedListener;

public class AndroidSpinnerAndButtonExampleActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.your_layout);

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


        // 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);

        setSpinnerOnItemSelectedListener(spinner);

        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(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(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();

                }
        });
    }

    public void setSpinnerOnItemSelectedListener(Spinner spinner){
        spinner.setOnItemSelectedListener(new OnItemSelectedListener(){
            @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

            }
    });
}

}
于 2012-12-08T16:20:24.003 回答