0

A、B、Cの3クラスあります。

クラス A はクラス B に 3 つの値を渡し、クラス B はクラス C に 3 つの値を渡しています。クラス CI では、この戻るボタンをクリックすると戻るボタンが 1 つあり、アクティビティ B を再開したいと思います。

私はアンドロイドが初めてです。アクティビティのライフサイクルについてはよくわかりません。前もって感謝します。

これは私のコードです。

public class A extends Activity
{
    EditText one,two,three;Button sub;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        setContentView(R.layout.one);
        this.onWindowFocusChanged(true);
        one=(EditText)findviewById(R.id.one);
        two=(EditText)findviewById(R.id.one);
        three=(EditText)findviewById(R.id.one);
        addListenerOnButton();
    }
    public void addListenerOnButton() 
    {
        // TODO Auto-generated method stub
        sub.setOnClickListener(new OnClickListener() 
        {
            @Override
            public void onClick(View v) 
            {
                Intent i = new Intent(A.this, B.class);
                Bundle b=new Bundle();
                b.putString("one",one.getText().toString());
                b.putString("two",two.getText().toString());
                b.putString("three",three.getText().toString());
                b.putExtras(b);
                startActivity(i);
            }
        });
    }
}

これはクラス B アクティビティです。

public class B extends Activity
{
    EditText one,two,three;Button sub;String one1,two1,three1;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        setContentView(R.layout.two);
        this.onWindowFocusChanged(true);
        one=(EditText)findviewById(R.id.one);
        two=(EditText)findviewById(R.id.one);
        three=(EditText)findviewById(R.id.one);
        Bundle b = this.getIntent().getExtras();
        one1=b.getString("one");
        one.setText(one1);
        two1=b.getString("two");
        two.setText(two1);
        three1=b.getString("three");
        three.setText(three1);
        addListenerOnButton();
    }
    public void addListenerOnButton() 
    {
        // TODO Auto-generated method stub
        sub.setOnClickListener(new OnClickListener() 
        {
            @Override
            public void onClick(View v) 
            {
                Intent i = new Intent(B.this, C.class);
                Bundle b=new Bundle();
                b.putString("one",one.getText().toString());
                b.putString("two",two.getText().toString());
                b.putString("three",three.getText().toString());
                b.putExtras(b);
                startActivity(i);
            }
        });
    }
}

これはクラス C アクティビティです (アプリがクラッシュする場所) 。

public class C extends Activity
{
    EditText one,two,three;Button sub,back;String one1,two1,three1;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        setContentView(R.layout.three);
        this.onWindowFocusChanged(true);
        one=(EditText)findviewById(R.id.one);
        two=(EditText)findviewById(R.id.one);
        three=(EditText)findviewById(R.id.one);
        Bundle b = this.getIntent().getExtras();
        one1=b.getString("one");
        one.setText(one1);
        two1=b.getString("two");
        two.setText(two1);
        three1=b.getString("three");
        three.setText(three1);
        addListenerOnButton();
    }
    public void addListenerOnButton() 
    {
        back.setOnClickListener(new OnClickListener() 
        {
            @Override
            public void onClick(View v) 
            {
                //Clicking back button i want to resume the activity b class but its getting crashed
                Intent i = new Intent(C.this, B.class);
                startActivity(i);
            }
        });
    }
}

この戻るボタンをクリックするたびにアプリがクラッシュし、アクティビティ B が再開されません。

4

3 に答える 3

0

Activity C クラスで、戻るボタン リスナーを次のように置き換えます。

back.setOnClickListener(new OnClickListener() 
{
    @Override
    public void onClick(View v) 
    {
        finish();
    }
}

現在のアクティビティが閉じられ (C)、その前にアクティブだったアクティビティが再開されます (B)。

于 2013-10-16T05:44:00.107 に答える
0

このように使用します

public class Main1Activity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main1);
        ((TextView)findViewById(R.id.txt)).setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                onBackPressed();
            }
        });
    }
    @Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
        super.onBackPressed();
    }
}
于 2013-10-16T06:01:34.970 に答える