활동

2013-02-15 3 views
0

활동

Form.java

내 주요 활동 Form.java있는 다음 코드를 살펴 제발 시작되지 않습니다. 그 안에는 AlertDialog이 있습니다. 사용자가 "예"버튼을 클릭하면, 다음과 같은 클래스는 위에서 언급 DialogPositiveDialogBtnAction 내부 클래스로 설정되고있는 XML 파일과 자바 클래스, 다음

private class PositiveDialogBtnAction implements DialogInterface.OnClickListener 
    { 

     public PositiveDialogBtnAction() 
     { 
     } 
     @Override 
     public void onClick(DialogInterface arg0, int arg1) { 
      // TODO Auto-generated method stub 
      //Toast.makeText(getApplicationContext(), databaseConnector.getStreetAddress(selectedBranch), Toast.LENGTH_LONG).show(); 

      Dialog dialog = new Dialog(context); 
      dialog.setContentView(R.layout.activity_call_dialog); 
      dialog.setTitle("Select a Phone Number"); 

      dialog.show(); 
     } 

    } 

호출됩니다. PositiveDialogBtnAction가 해고

activity_call_dialog

<TextView 
    android:id="@+id/callNumber1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true" 
    android:text="" /> 

<TextView 
    android:id="@+id/callNumber2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true" 
    android:text="" /> 

CallDialog.java

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.widget.TextView; 
import android.widget.Toast; 

public class CallDialog extends Activity { 

    private DatabaseConnector database = DatabaseHandler.getInstance(); 
    private TextView ph1,ph2; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_call_dialog); 

     Toast.makeText(this, "Activity Running", Toast.LENGTH_LONG).show(); 
     //String selectedBranch = Form.selectedBranch; 

     //ph1 = (TextView)findViewById(R.id.callNumber1); 
     //ph2 = (TextView)findViewById(R.id.callNumber2); 

     //ph1.setText(database.getPhoneNumber1(selectedBranch)); 
     //ph2.setText(database.getPhoneNumber2(selectedBranch)); 

    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.activity_call_dialog, menu); 
     return true; 
    } 


} 

하지만, CallDialog.java에 언급 된 Toast은 결코 해고 당하지 않습니다. CallDIalog.java.을 다루지 않는 것 같습니다. 따라서 텍스트 필드에 값을 설정할 수 없습니다. activity_call_dialog.xml도 있습니다. 나는 그 라인들을 주석 처리했다.

이 활동에 번들로 제공된이 Java 파일이 호출되지 않는 이유는 무엇입니까? 도와주세요!

+1

코드를 약간 정리 해줄 수 있습니까? 무슨 일이 일어나고 있는지 정말 시끄럽고 매우 힘듭니다. 예 : 당신은 Call.java 언급하지만 그것은 어디에도 보여지지 않습니다. 또한 불필요한 주석 처리 된 줄을 제거하십시오. 아마도 요령을 작성하고 관련 코드 만 유지하면 더 나은 해결책이 될 수 있습니다. – allprog

+0

@allprog : 오탈자 인 CallDialog.java에 대해 언급했습니다. 죄송합니다. 나는 그것을 수정했다 –

+0

'CallDialog'은'Activity' 또는'Dialog'라고되어 있나? 대화 상자가되기를 원하면'Activity'를 확장해서는 안됩니다. 또한 인스턴스화하지 않습니다. 새로운'DialDo' 만 새로 만들었고 새로운 CallDialog는 만들지 않았습니다. 'Activity'가되어야한다면, 'Intent'로 시작해야합니다. 대화 상자를 만들고 보여주는 것이 아닙니다. – Geobits

답변

0

경고 대화 상자를 만들려면 AlertDialog.Builder를 사용해야합니다. 그것은 유창한 인터페이스를 가지고있어 대화 상자를 다루기가 정말 쉽습니다. 예 :

new AlertDialog.Builder(this) 
    .setMessage("Someone is calling you") 
    .setPositiveButton("Positive", 
      new OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        startActivity(new Intent("com.example.CallDialogActivity")); 
      }}) 
    .create() 
    .show(); 

클릭 리스너 내부에서 새로운 활동을 시작하기 위해, 간단하게 당신을위한 AndroidManifest.xml에 등록 된 행동으로 startActivity() 전화 CallDialog (난 당신이 CallDialogActivity로 이름을 변경 제안). 그러나 어쨌든 대화 상자 나 활동을 어디에 사용해야하는지 결정해야합니다. 그에 따라 처리해야합니다.