0

我是安卓初学者。我想将结果从 FirstActivity 传递给 SecondActivity,如下所示。如何删除意图额外的结果?或者以任何方式将结果传递给 SecondActivity 并显示在 TextView 上?(我犯了一个错误并替换,我的主要问题是如何删除结果,因为我想在其中设置另一个新结果。)

第一活动.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.您可以使用Activity AstartActivityForResult()onActivityResult()的 ,将数据传递给 Activity B,然后经过一些计算,将结果传递回 Activity A。

2.现在如果你只想将一些数据从Activity A发送到Activity B,然后在TextView中显示,然后使用putExtra()and 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 回答