0

私はAndroidの初心者です。以下のように、FirstActivityの結果をSecondActivityに渡します。結果を削除する方法は、余分な意図がありますか?または、結果をSecondActivityに渡して、TextViewに表示する方法はありますか?(私は間違いを犯して置き換えました。私の主な質問は、別の新しい結果を設定したいので、結果を削除する方法です。)

FirstActivity.java

    public class FirstActivity extends Activity {   
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //code...
        try {     
            myDbHelper.createDatabase();
        } 
        catch (IOException ioe) {
        Log.d("Error","Error while createing Database");
        ioe.printStackTrace();
        throw new Error("Unable to create database");
        }   
        try {     
            myDbHelper.openDataBase();     
        }
        catch(SQLException sqle){
            Log.d("Error","Error while Opening Database");
            sqle.printStackTrace();
            throw sqle;     
        }
        send.setOnClickListener( new View.OnClickListener() {  
        public void onClick(View v) {  
        showResult();  
    }  
    });             
    }
    private void showResult() {  
        //...code       
        //checking for slection 
        results = queryData(table, type);               
        Intent intent = new Intent(this,SecondActivity.class);      
        intent.putExtra("results", results);  
        startActivity(intent);
    }
    public String queryData(String table, String type){
        //...
        //do somthing to get result
        return result;
    }
    }  

SecondActivity.java

    public class SecondActivity extends Activity {      
        @Override
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);                    
        setContentView(R.layout.result_item);        
        TextView tv;        
        tv = (TextView)findViewById(R.id.tv);       
        Bundle extras=getIntent().getExtras();
        String value1=extras.getString("results");      
        tv.setText("Result\n" + value1);
    }
    }
4

4 に答える 4

0

startActivityForResult(intent, 0)に変更startActivity(intent);

このような

private void showResult() {  
    results = queryData(table, type);               
    Intent intent = new Intent(firstActivity.this,SecondActivity.class);      
    intent.putExtra("results", results);  
    startActivity(intent);
}
于 2012-10-10T04:35:24.043 に答える
0

新しい意図を作り、合格する

Intent intent = new Intent(FirstActivity.this,SecondActivity.class);      
intent.putExtra("results", results);  
startActivity(intent);
于 2012-10-10T04:38:24.660 に答える
0

データを次へ渡す方法Activityは正しいです。しかし、あなたは活動を始めるのを間違えました。コードでの開始は次のActivityようになります-

private void showResult() {  
    //...code       
    //checking for slection 
    results = queryData(table, type);               
    Intent intent = new Intent(this,SecondActivity.class);      
    intent.putExtra("results", results);  
    startActivity(intent);  // This is the way to start a new Activity which is in seperate class
}

そして、以下を見てください-

  1. Androidアプリケーションのアクティビティ間でデータを渡すにはどうすればよいですか?

  2. Androidのアクティビティ間でデータを渡す

于 2012-10-10T04:39:50.953 に答える
0

あなたは2つの方法で行うことができます:

1.アクティビティAのを使用startActivityForResult()onActivityResult()てデータをアクティビティBに渡し、計算を行った後、結果をアクティビティAに戻すことができます。

2.アクティビティAからアクティビティBにデータを送信し、それをTextViewに表示する場合は、 ...を使用putExtra()します。getExtras()

アクティビティAからBへの送信:

Intent i = new Intent(Activity_A.this, Activity_B.class);
i.putExtra("name",Name);
startActivity(i);

アクティビティBの値を受け取る:

Intent i = getIntent();
String n = i.getExtras().getString("name");
于 2012-10-10T04:43:16.653 に答える