0

チケット販売システムであるアプリを作成しています。チェックアウトページ(PaymentScreenアクティビティ)で、顧客が自分のアカウントにサインインしていることを確認するためのチェックが実行され、サインインしていない場合は、チェックアウトを続行する前にログインにリダイレクトされます。

顧客がサインインしているかどうかを確認すると、コードは顧客がサインインしていないことを正しく確認し、if関数(LogCatからわかります)を実行しますが、アクティビティは起動されず、コードは実行され続けます。

どんな助けでもいただければ幸いです-私はこれを理解できないようです。

PaymentScreen.java:

public class PaymentScreen extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {   
    super.onCreate(savedInstanceState);
    setContentView(R.layout.paymentscreen);

    if(Singleton.getInstance().selected_city == null) {
        PaymentScreen.this.startActivity(new Intent().setClass(PaymentScreen.this, CityList.class));
    }
    if(Singleton.getInstance().selected_venue == null) {
        PaymentScreen.this.startActivity(new Intent().setClass(PaymentScreen.this, VenueList.class));
    }
    if(Singleton.getInstance().selected_event == null) {
        PaymentScreen.this.startActivity(new Intent().setClass(PaymentScreen.this, EventList.class));
    }
    if(Singleton.getInstance().customer == null) {
        PaymentScreen.this.startActivity(new Intent().setClass(PaymentScreen.this, LoginScreen.class).putExtra("sendToActivity", "PaymentScreen"));
        Log.d("LineBouncer", "in if statement and (customer == null) is true");
    }
    if(Singleton.getInstance().customer == null) {
        Log.d("LineBouncer", "customer is null");
    }
    new GetPrepurchaseId().execute();
}
}

LogCat:

06-19 02:10:22.972: D/LineBouncer(3102): in if statement and (customer == null) is true
06-19 02:10:22.972: D/LineBouncer(3102): customer is null

AndroidManifest.xml:

    <activity android:name=".CityList" android:label="@string/app_name"></activity>
    <activity android:name=".LoginScreen" android:label="@string/app_name"></activity> 
    <activity android:name=".CreateAccount" android:label="@string/app_name"></activity> 
    <activity android:name=".VenueList" android:label="@string/app_name"></activity> 
    <activity android:name=".EventList" android:label="@string/app_name"></activity>
    <activity android:name=".EventDetails" android:label="@string/app_name"></activity>
    <activity android:name=".PaymentScreen" android:label="@string/app_name"></activity>
    <activity android:name=".OrderHistory" android:label="@string/app_name"></activity>
    <activity android:name=".PassView" android:label="@string/app_name"></activity>

したがって、LogCatから明らかなように、プログラムは顧客がnullであり、StartActivityコードを実行していることを認識しますが、実行を継続し、実際にそのアクティビティを開始することはありません。

ありがとう!

4

4 に答える 4

1

アクティビティを開始する正しい方法は次のとおりです。

Intent intent = new Intent(PaymentScreen.this, EventList.class);
startActivity(intent);
于 2012-06-19T06:41:53.100 に答える
0

それ以外のPaymentScreen.this.startActivity(new Intent().setClass(PaymentScreen.this, CityList.class));

試す:

PaymentScreen.this.startActivity(new Intent(PaymentScreen.this, CityList.class));
于 2012-06-19T06:27:02.017 に答える
0

これを試して

startActivity(new Intent(PaymentScreen.this, LoginScreen.class).putExtra("sendToActivity", "PaymentScreen"));

PaymentScreen.this.startActivity(new Intent().setClass(PaymentScreen.this, LoginScreen.class).putExtra("sendToActivity", "PaymentScreen"));

あなたはそれを次のように行うことができます

Intent in;
if(Singleton.getInstance().selected_city == null) {
        in=new Intent(PaymentScreen.this, CityList.class);
        startActivity(in);
    }
    if(Singleton.getInstance().selected_venue == null) {
        in=new Intent(PaymentScreen.this, VenueList.class);
        startActivity(in);

    }
    if(Singleton.getInstance().selected_event == null) {
        in=new Intent(PaymentScreen.this, EventList.class);
        startActivity(in);
    }
    if(Singleton.getInstance().customer == null) {
        in=new Intent(PaymentScreen.this, LoginScreen.class);
        in.putExtra("sendToActivity", "PaymentScreen");
        startActivity(in);
        Log.d("LineBouncer", "in if statement and (customer == null) is true");
    }
    if(Singleton.getInstance().customer == null) {
        Log.d("LineBouncer", "customer is null");
    }
    new GetPrepurchaseId().execute();

あなたがこれに言及した場合

<activity android:name=".CityList" android:label="@string/app_name"></activity> 

マニフェストでそれを宣言します。

于 2012-06-19T06:43:32.630 に答える
0

minifestで定義したことを確認してください。

電話する方がいいです

 context.startActivity()

insde

于 2016-01-13T05:49:03.837 に答える