TextView我的问题是,当我更改Main 类中a 的文本时,它返回 nullPointerException。
这是我的代码:
主文件
<TabHost ...>
<RelativeLayout ...>
<LinearLayout ...>
<TabWidget .../>
<FrameLayout ...>
<ListView ../>
</FrameLayout>
</LinearLayout>
<LinearLayout ...>
<TextView android:id="@+id/status" ... />
</LinearLayout>
</RelativeLayout>
</TabHost>
Run Code Online (Sandbox Code Playgroud)
主班
....
TabHost tabHost;
TabHost.TabSpec spec;
Intent intent;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//display implementation of TabHost
....
//Contacts tab
intent = new Intent().setClass(this, Contacts.class);
spec = tabHost.newTabSpec("contacts").setIndicator("Contacts", res.getDrawable(R.drawable.ic_tab_contacts)).setContent(intent);
tabHost.addTab(spec);
}
Run Code Online (Sandbox Code Playgroud)
然后将更新状态 TextView 的类是这样的:
通讯录类
public class Contacts extends ListActivity{
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//gather info to display in ListView
....
updateStatus("New Status");
}
private void updateStatus(String status){
TextView labelView = (TextView) findViewById(R.id.status);
labelView.setText(status);
}
}
labelView.setText(status); Error occurs here....
Run Code Online (Sandbox Code Playgroud)
请帮助我。我在网上找不到任何解决方案。我需要更新状态......
这是我的清单:
...
<application ...>
<activity android:name=".Main" ... >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Contacts" android:label="@string/app_name"></activity>
<activity android:name=".OtherClass" android:label="@string/app_name"></activity>
<activity android:name=".OtherClass2" android:label="@string/app_name"></activity>
</application>
...
Run Code Online (Sandbox Code Playgroud)
预先感谢您的帮助。
status当您尝试从联系人活动上下文中查找具有id 的视图时,您会看到主活动上下文中存在该视图。这就是它回归的原因null。
试试这个,它应该可以解决你的问题:
主要活动
public class Main extends Activity {
public static String sStatus = "";
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//display implementation of TabHost
....
}
@Override
protected void onResume() {
TextView labelView = (TextView) findViewById(R.id.status);
labelView.setText(status);
}
}
Run Code Online (Sandbox Code Playgroud)
联系方式 活动
public class Contacts extends ListActivity{
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//gather info to display in ListView
....
updateStatus("New Status");
}
private void updateStatus(String status){
Main.sStatus = status;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15061 次 |
| 最近记录: |