import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Button;
public class FileExplorerActivity extends Activity
{
public static final String TAG="ricky";
Button button;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
button = (Button) findViewById(R.id.but);<<<------------------
if(button == null)
Log.d(TAG, "FileExplorerActivity: button is null");
}
public FileExplorerActivity()
{
Log.d(TAG, "FileExplorer: constructor()");
}
}
这是一个简单的Activity,由另一个使用Intent
的活动引入Intent openFileBrowser = new Intent(this, FileExplorerActivity.class);
try
{
startActivity(openFileBrowser);
}
运行代码后,我的LogCat文件说“button is null”为什么???
答案 0 :(得分:15)
正如其他人所说,在调用setContentView()
之前,您没有通过findViewById()
设置布局。
为什么我需要它?
因为Activity.findViewById()
在当前活动的视图层次中搜索。如果您没有设置视图层次结构,则无法找到任何内容。当此方法什么都找不到时,它返回null。
因此,您应在调用super.onCreate()
super.onCreate(savedInstanceState);
setContentView(R.layout.yourlayout);
button = (Button) findViewById(R.id.but);
// ...
答案 1 :(得分:1)
您需要设置布局
setContentView(R.layout.main_layout);
答案 2 :(得分:0)
下一个代码解决了这个问题(Xamarin Android)
var $img = $("<img>");
$img.on('load', function (e) {
this.$photoImageManager.attr('src', e.target.src);
}.bind(this));
$img.attr('src', "../../users/" + userId + "/" + userId + "-photo.png");