-1

私のプログラムはbnameをpositionに変更することを想定していますが、何らかの理由でこの方法でRecordExpeanceにpositionを送信しません。R.id.record_expeance:

    startActivity(new Intent(BudgetStart.this, RecordExpeance.class));
    ex.changeName(position);
    BudgetStart.this.finish();
    break; 

その後は位置と同じであるはずですが、nullのままですこれが原因かどうかはわかりませんそのクラスを新しく開始するか何かを開始しますが、理解できません

package budget.app;


import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class RecordExpeance extends Activity implements OnClickListener
{    
    private String bname;
    protected void onCreate(Bundle savedInstanceState) 
    {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.recordexpeance);
        final BudgetDB entry = new BudgetDB(RecordExpeance.this);
        EditText a =(EditText)findViewById(R.id.txtExpeance);
        EditText b =(EditText)findViewById(R.id.txtEMomo);
        TextView c =(TextView)findViewById(R.id.lblBudgetAmount);
        TextView d =(TextView)findViewById(R.id.lblBudgetName);
       d.setText(bname);

        String bamount;

        entry.open();
        bamount = entry.getBamount(bname);
        entry.close();

        Button A = (Button)findViewById(R.id.btnFinish);

        A.setOnClickListener(this);
    }

    public void onClick(View argo) 
    {
        // TODO Auto-generated method stub
        startActivity(new Intent(RecordExpeance.this, BudgetStart.class));
        RecordExpeance.this.finish();
    }
    public void changeName(String position) 
    {
        // TODO Auto-generated method stub

        bname = position;
    }
}
4

1 に答える 1

1

positionインテントを渡す方が簡単です。

Intent intent = new Intent(BudgetStart.this, RecordExpeance.class);
intent.putExtra("position", position);
startActivity(intent);
BudgetStart.this.finish();
break; 

次に、インテントからそれを読んでくださいRecordExpeance

super.onCreate(savedInstanceState);
setContentView(R.layout.recordexpeance);

bname = getIntent().getIntExtra("position", 1); 
// Where 1 is the default value if you forgot use putExtra()
于 2012-11-26T16:59:39.557 に答える