2010-12-14 78 views
0

我在我的项目中获得了2个类。第一类(主)有一个列表视图,这是的onclick():Android开发:传递信息并失败

@Override 
    protected void onListItemClick(ListView l, View v, int position, long id) { 
     super.onListItemClick(l, v, position, id); 
     // Get the item that was clicked 
     Object o = this.getListAdapter().getItem(position); 
     String keyword = o.toString(); 
     class2 sec = new Class2(); 

     Intent intent = new Intent(this, Class2.class); 
     startActivity(intent) ; 
     if (keyword == "hello"){ 
      sec.setInfo(keyword); 
     } 



    } 

左右,然后在我的其他类有不同模式layout.xml。代码是:

public class det extends Activity { 
    static WebView map; 
    public TextView header; 
    @Override 
    public void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.details); 

} 
    public void setInfo(String mystring){ 
     header = (TextView) findViewById(R.id.text01); 
     header.setText(mystring); 
     //Toast.makeText(this, map, Toast.LENGTH_LONG).show(); 
     //return; 
    } 

咋,我不断收到我的android手机的力量。该应用程序我的意思是将标题文本更改为在列表视图上点击的文本。但是当我点击一个项目时,它弹出一个窗口与FC。

香港专业教育学院试评走:

header = (TextView) findViewById(R.id.text01); 
     header.setText(mystring); 

和它的工作没有FC然而HEADERTEXT是STIL空。

谢谢! 你的朋友!

回答

2

首先,您需要发布堆栈跟踪,以便我们了解如何提供帮助。

其次,我假设Class2扩展活动或否则Intent intent = new Intent(this, Class2.class);没有任何意义。既然如此,class2 sec = new Class2();总是错的。你永远不要在扩展Activity的类上调用new

你不能在这样的另一个活动上调用方法。你唯一真正的选择是通过使用putExtra发送意图中的关键字,然后获取它在Class2

+0

像我说的我有2类。新的意图是提出新的课堂活动。那么我该如何做到这一点:将当前布局从main.xml更改为example.xml,并调用一个改变文本的方法。我有点新。谢谢! – carefacerz 2010-12-14 18:35:01

+0

你不能调用一个活动的方法。真正做到这一点的唯一方法就是将其发送出去。有数百个如何做到这一点的例子。 http://www.remwebdevelopment.com/dev/a33/Passing-Bundles-Around-Activities.html。但是你永远无法从任何其他课程中调用一种活动的方法。 – Falmarri 2010-12-14 18:45:26