Mil*_*loš 25 android android-view
我在Lyout中有一个文本视图,我想在这个textview中设置一些文本.这应该在一个不是MainActivity类的类中进行.
问题是我得到了一个空指针异常.
这是我的代码:
public class UserInformations extends Activity{
TextView emailTextView;
LocalDatabase localdatabase= new LocalDatabase(this);
public void getUserInformation()
{
emailTextView = (TextView) findViewById(R.id.EmailTextView);
String email = localdatabase.getUserEmail();
emailTextView.setText(email);
}
}
Run Code Online (Sandbox Code Playgroud)
当我在Main Activity类中执行此操作时,它可以正常工作,但它不适用于其他类.
Dee*_*eeV 38
只有当前的Activity布局设置时,才能调用findViewById()该Activity对象setContentView.如果通过其他方式添加布局,则需要View布局对象并对其进行调用findViewById().
View v = inflater.inflate(id_number_of_layout); # such as R.layout.activity_main
View innerView = v.findViewById(id_number_of_view_inside_v);
Run Code Online (Sandbox Code Playgroud)
如果布局应该是活动的主要布局,那么执行以下操作:
public class MyActivity extends Activity{
TextView emailTextView;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(id_number_of_layout);
emailTextView = (TextView) findViewById(R.id.EmailTextView);
// ... whatever other set up you need to do ...
}
public void getUserInformation() {
// .... regular code ...
}
}
Run Code Online (Sandbox Code Playgroud)
您还没有设置内容View?
要做到这一点,请使用以下内容:
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
Run Code Online (Sandbox Code Playgroud)
findViewById(R.id.EmailTextView);
Run Code Online (Sandbox Code Playgroud)
你要么
编辑:根据您的新评论肯定是1.
| 归档时间: |
|
| 查看次数: |
78642 次 |
| 最近记录: |