경고 대화 상자에서 다른 활동 시작

까이

내 AlertDialog "ShowEditDialog"에서 활동을 시작하고 싶지만 새 활동을 시작하려는 의도를 전달하려고하면 "정적 컨텍스트에서 비 정적 메서드를 참조 할 수 없습니다"가 표시됩니다.

내 AlertDialog를 비 정적으로 만들 수없는 이유 중 하나는 AccountManager의 정적 메서드에서 참조하기 때문입니다. 이 문제를 해결하는 방법이 있습니까? 아래 코드는 "정적으로 비 정적"문제가 b.setNeutralButton의 첫 번째 스 니펫에 있습니다.

필요한 경우 다른 코드를 요청하십시오.

Alerts.class (관련 부분의 스 니펫) (정적 문제의 비 정적 문제는 b.setNeutralButton에 있습니다)

public class Alerts extends Activity {

public static AlertDialog ShowEditDialog(final Context con,final Account Acc)
{
    AlertDialog.Builder b=new AlertDialog.Builder(con);
    b.setTitle("Account Details");
    LayoutInflater li=LayoutInflater.from(con);
    View v=li.inflate(R.layout.editdialog, null);

    b.setIcon(android.R.drawable.ic_input_get);

    b.setView(v);
    final TextView txtName=(TextView)v.findViewById(R.id.txtDelName);
    final TextView txtAmt=(TextView)v.findViewById(R.id.txtDelAmt);
    final TextView txtPurpose=(TextView)v.findViewById(R.id.txtDelPurpose);
    final Spinner spinTerm=(Spinner)v.findViewById(R.id.spinTerm);
    final Spinner spinStat=(Spinner)v.findViewById(R.id.spinStat);



    Utilities.ManageTermSpinner(con, spinTerm);
    for(int i=0;i<spinTerm.getCount();i++)
    {
        long id=spinTerm.getItemIdAtPosition(i);
        if(id==Acc.getTerms())
        {
            spinTerm.setSelection(i, true);
            break;
        }
    }

    Utilities.ManageStatSpinner(con, spinStat);
    for(int j=0;j<spinStat.getCount();j++)
    {
        long id=spinStat.getItemIdAtPosition(j);
        if(id==Acc.getStatus())
        {
            spinStat.setSelection(j, true);
            break;
        }
    }


    txtName.setText(Acc.getName());
    txtAmt.setText(String.valueOf(Acc.getAmt()));

    b.setPositiveButton("Modify", new OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            Acc.setName(txtName.getText().toString());
            Acc.setAmt(Integer.valueOf(txtAmt.getText().toString()));
            Acc.setPurpose(txtPurpose.getText().toString());
            Acc.setTerms((int) spinTerm.getItemIdAtPosition(spinTerm.getSelectedItemPosition()));
            Acc.setStatus((int) spinStat.getItemIdAtPosition(spinStat.getSelectedItemPosition()));
            try
            {
                DatabaseHelper db=new DatabaseHelper(con);
                db.UpdateAcc(Acc);

            }
            catch(Exception ex)
            {
                CatchError(con, ex.toString());
            }
        }
    });

---HERE--->b.setNeutralButton("Full Details", new OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            // getBaseContext() is where the problem is linked to
            Intent myIntent = new Intent(getBaseContext(), AccountDetails.class);
            startActivity(myIntent);
        }
    });
    b.setNegativeButton("Cancel", null);

    return b.create();
    }

}

AccountManager.class (상대 부분의 스 니펫)

public class AccountManager extends Activity {
DatabaseHelper dbHelper;
static public GridView grid;
TextView txtTest;
TextView txtTest2;
TextView txtAccounts;
TextView filter;
Spinner spinStat;
Spinner spinTerm;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.gridview);
    grid = (GridView) findViewById(R.id.grid);
    spinStat = (Spinner) findViewById(R.id.spinStat);
    spinTerm = (Spinner) findViewById(R.id.spinTerm);

    final DatabaseHelper db = new DatabaseHelper(this);

            try {
        grid.setOnItemClickListener(new OnItemClickListener() {

         @Override
         public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
               try {

               SQLiteCursor cr = (SQLiteCursor) parent.getItemAtPosition(position);
               String name = cr.getString(cr.getColumnIndex(DatabaseHelper.colName));
               int amount = cr.getInt(cr.getColumnIndex(DatabaseHelper.colAmount));
               String purpose = cr.getString(cr.getColumnIndex(DatabaseHelper.colPurpose));
               String Terms = cr.getString(cr.getColumnIndex(DatabaseHelper.colTermsClass));
               String Status = cr.getString(cr.getColumnIndex(DatabaseHelper.colStatClass));
               String date = cr.getString(cr.getColumnIndex(DatabaseHelper.colDate));
               String editdate = cr.getString(cr.getColumnIndex(DatabaseHelper.colEditDate));
               Account acc = new Account(name, amount, purpose, db.GetTermsID(Terms),date,editdate,db.GetStatID(Status));
               acc.SetID((int) id);
    ---HERE--->AlertDialog diag = Alerts.ShowEditDialog(AccountManager.this, acc);
                                                diag.setOnDismissListener(new OnDismissListener() {

               @Override
               public void onDismiss(DialogInterface dialog) {
                     ShowGrid();
               }
           });
           diag.show();
         } catch (Exception ex) {
           Alerts.CatchError(AccountManager.this, ex.toString());
           }
        }
    });

    } catch (Exception ex) {
  }
}
ρяσѕρєя K

대신의 getBaseContext()사용 con에 매개 변수로 전달 ShowEditDialog:

Intent myIntent = new Intent(con, AccountDetails.class);
con.startActivity(myIntent);

또는 당신은 또한 얻을 수 있습니다 Context사용하여 b.getContext()첫 번째 매개 변수로 의도 생성자에 전달하고 액세스하는 startActivity방법을

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

경고 대화 상자에서 다른 활동 시작

분류에서Dev

'화면 고정'활동에서 다른 활동 시작

분류에서Dev

다른 활동에서 경고 대화 상자를 여는 방법

분류에서Dev

baseActivity는 Navbar에서 활동 / 대화를 시작합니다. 대화 상자 아래에있는 활동

분류에서Dev

대화 상자 활동에서 작업 표시 줄 배경 변경

분류에서Dev

비활성화 된 버튼에 대한 화재 경고가 firefox에서 작동하지 않습니다.

분류에서Dev

BackPressed에서 대화 상자 표시 및 새 활동 시작-Android

분류에서Dev

모든 활동의 백그라운드 프로세스에서 경고 대화 상자 표시

분류에서Dev

버튼 클릭 후 대화 상자에서 활동 시작

분류에서Dev

Android의 다른 활동에서 경고 대화 상자의 긍정적 버튼 이벤트를 처리하는 방법은 무엇입니까?

분류에서Dev

이 경고 대화 상자가 flutter에서 작동하지 않는 이유

분류에서Dev

비동기 작업에서 경고 대화 상자를 구현합니까?

분류에서Dev

대화 조각에서 활동 시작

분류에서Dev

Xubuntu 16.10에서 TeamViewer 자동 시작 다시 활성화

분류에서Dev

버튼 클릭 기능 jquery에 대해 경고 대화 상자가 작동하지 않습니다.

분류에서Dev

앱 시작시 경고 [Windows 자동화]

분류에서Dev

대화 상자로 작동하는 활동에서 "앱 이름"비활성화

분류에서Dev

버튼 (비활성화 = 거짓) 조건; 어떤 경우에는 작동하고 다른 경우에는 작동하지 않습니다.

분류에서Dev

버튼을 클릭하면 새 활동을 열기 전에 경고 대화 상자 표시

분류에서Dev

응용 프로그램의 모든 활동 위에 경고 대화 상자를 표시하는 방법 android

분류에서Dev

Android 매니페스트에서 다른 화면 크기에 대한 시작 활동을 설정하는 방법

분류에서Dev

Android : 서비스가 실행중인 경우 활동 A를 시작하고 활동 B를 시작합니다.

분류에서Dev

스플래시 화면에서 다른 활동 (주 활동 제외)의 비동기 작업 수행

분류에서Dev

다른 활동에서 활동 레이블 (작업 표시 줄 제목)을 변경 하시겠습니까?

분류에서Dev

동일한 사용자 지정 경고 작업에 대한 SwiftUI 다른 작업

분류에서Dev

Android에서 활동을 대화 상자로 표시

분류에서Dev

Android는 백 스택에서 다른 활동 전에 새 활동을 시작하고 이전 활동 위의 활동을 지 웁니다.

분류에서Dev

한 활동에서 다른 활동으로의 BG 색상 변경에 대한 다중 인 텐트 @ Android

분류에서Dev

AppWidgetProvider에서 이벤트를 클릭하지 않고 다른 활동 시작

Related 관련 기사

  1. 1

    경고 대화 상자에서 다른 활동 시작

  2. 2

    '화면 고정'활동에서 다른 활동 시작

  3. 3

    다른 활동에서 경고 대화 상자를 여는 방법

  4. 4

    baseActivity는 Navbar에서 활동 / 대화를 시작합니다. 대화 상자 아래에있는 활동

  5. 5

    대화 상자 활동에서 작업 표시 줄 배경 변경

  6. 6

    비활성화 된 버튼에 대한 화재 경고가 firefox에서 작동하지 않습니다.

  7. 7

    BackPressed에서 대화 상자 표시 및 새 활동 시작-Android

  8. 8

    모든 활동의 백그라운드 프로세스에서 경고 대화 상자 표시

  9. 9

    버튼 클릭 후 대화 상자에서 활동 시작

  10. 10

    Android의 다른 활동에서 경고 대화 상자의 긍정적 버튼 이벤트를 처리하는 방법은 무엇입니까?

  11. 11

    이 경고 대화 상자가 flutter에서 작동하지 않는 이유

  12. 12

    비동기 작업에서 경고 대화 상자를 구현합니까?

  13. 13

    대화 조각에서 활동 시작

  14. 14

    Xubuntu 16.10에서 TeamViewer 자동 시작 다시 활성화

  15. 15

    버튼 클릭 기능 jquery에 대해 경고 대화 상자가 작동하지 않습니다.

  16. 16

    앱 시작시 경고 [Windows 자동화]

  17. 17

    대화 상자로 작동하는 활동에서 "앱 이름"비활성화

  18. 18

    버튼 (비활성화 = 거짓) 조건; 어떤 경우에는 작동하고 다른 경우에는 작동하지 않습니다.

  19. 19

    버튼을 클릭하면 새 활동을 열기 전에 경고 대화 상자 표시

  20. 20

    응용 프로그램의 모든 활동 위에 경고 대화 상자를 표시하는 방법 android

  21. 21

    Android 매니페스트에서 다른 화면 크기에 대한 시작 활동을 설정하는 방법

  22. 22

    Android : 서비스가 실행중인 경우 활동 A를 시작하고 활동 B를 시작합니다.

  23. 23

    스플래시 화면에서 다른 활동 (주 활동 제외)의 비동기 작업 수행

  24. 24

    다른 활동에서 활동 레이블 (작업 표시 줄 제목)을 변경 하시겠습니까?

  25. 25

    동일한 사용자 지정 경고 작업에 대한 SwiftUI 다른 작업

  26. 26

    Android에서 활동을 대화 상자로 표시

  27. 27

    Android는 백 스택에서 다른 활동 전에 새 활동을 시작하고 이전 활동 위의 활동을 지 웁니다.

  28. 28

    한 활동에서 다른 활동으로의 BG 색상 변경에 대한 다중 인 텐트 @ Android

  29. 29

    AppWidgetProvider에서 이벤트를 클릭하지 않고 다른 활동 시작

뜨겁다태그

보관