2012-12-08 55 views
0

我有兩個不同的java文件,並想知道是否有一種方法來組合它們,以便兩個代碼都在一個文件中。下面簡單Android開發:結合兩個Java文件

將創建一個對話框沒有被點擊並移動到一個新的活動,如果是被點擊時,什麼也不做:

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和鏈接到AndroidSpinnerExampleActivity的spinex.xml。我試圖將兩個java文件鏈接到同一個xml,但我發現只有一個java文件似乎做了任何事情,所以我相信唯一的解決方案是將兩個代碼合併到一個java文件中,但我似乎總是出錯當我嘗試這個。

+0

結合Java文件的目標是什麼? –

+0

以防萬一,我不清楚,第一個代碼創建一個對話框第二部分創建一個微調(下拉列表),這兩者都是在兩個不同的Java文件。目前我有兩個不同的xml文件,但我想將這兩個java代碼合併爲一個,這樣我就可以使用對話框和微調器來創建一個xml文件。 – JimmyK

+1

你可以做到這一點,但對於你必須刪除公衆從已創建的Java類的一個又一個修改將是公共類,這將是我曾嘗試刪除的一個公共部分Java文件名 –

回答

1

每個公共類必須位於一個單獨的文件中,其文件名與該類相同。但是,如果您將您的某個課程更改爲不公開,那麼確定。我認爲最佳做法是保持文件原樣。將來的可維護性將您的課程放在單獨的文件中更好,這樣您就可以輕鬆找到您的課程。

+0

麻煩的是,我需要一個XML佈局文件來訪問這兩個Java文件和我似乎無法要做到這一點,除非我結合這兩個代碼。 – JimmyK

+0

我認爲你需要仔細考慮你的應用程序的結構。你不能同時有2項活動。您需要爲每個活動提供一個xml。考慮使用片段。或合併2個活動分爲1個活動,如果你能 – CocoNess

+0

合併他們正是我所遇到的問題,不管是什麼,我似乎做我總是得到錯誤,我不能修復 – JimmyK

1

基本上我要的是我的xml文件,同時使用一個對話框 框,下拉菜單之一,但因爲我遇到了麻煩把 這兩個代碼轉換成一個Java文件我使出創建兩個 不同的xml文件,鏈接到AlertDialogActivity 的post.xml以及鏈接到AndroidSpinnerExampleActivity的spinex.xml。

按照此步驟:

  • 創建一個包含一個ButtonSpinner佈局文件。
  • 創建擴展Activity並實現OnItemSelectedListener接口
  • 將先前創建的佈局在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); 
    
1

我對你的問題有點困惑。你是否想要結合這些活動,讓你有一個活動,同時打開對話框和微調屏幕上的按鈕?如果是這樣,你應該能夠做到這一點。

只是要同時包含按鈕和旋轉一個XML文件:

<Button 
    .... /> 

<Spinner 
    .... /> 

然後,你可以有一個活動將引用微調和按鈕,填充微調,並分配一個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 

      } 
    }); 
} 

} 
+0

我似乎得到數據setSpinnerOnClickListener錯誤,AlertDialogActivity.this和Spinner.onItemSelectedListener – JimmyK

+0

@JimmyK這些都是從複製粘貼所有拼寫錯誤/錯誤。我已經修復了所有問題。 setSpinnerOnClickListener實際上應該是setSpinnerOnItemSelectedListener(我指的是我在底部定義的方法)。 AlertDialogActivity.this不正確,這是從複製粘貼代碼中遺留下來的。相反,你應該使用'這個'。而不是Spinner.onItemSelectedListener,您需要導入android.widget.AdapterView.OnItemSelectedListener並使用它。我只是猜測它叫什麼。我沒有真正編譯這個例子。 – mattgmg1990