我用空活动构建一个新的Android应用程序 并添加了一个仅用于测试的onlick功能 似乎没有用的东西
该应用程序在我的LGg2 android devive上运行 但似乎onclick监听器没有响应 当我点击按钮(id:butt)
时在调试模式下,我可以步骤查看监听器是否构建 但我从未到过断点 在我设置文本的行中(.. t.setText(...
有人可以看到,我做错了什么?
这是我的布局
public class MainActivity extends AppCompatActivity
{
public static View rootView;
public static Button b;
public static TextView t;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rootView = getLayoutInflater().inflate(R.layout.activity_main, null);
b = (Button) rootView.findViewById(R.id.butt);
t = (TextView) rootView.findViewById(R.id.t);
b.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view)
{
t.setText("lsdallsd");
Log.d("asadssd","ssdasd");
view.setBackgroundColor(Color.RED);
}
});
}
}
这里是我有onclicklistener的主要活动
{{1}}
答案 0 :(得分:1)
而不是
rootView = getLayoutInflater().inflate(R.layout.activity_main, null);
b = (Button) rootView.findViewById(R.id.butt);
t = (TextView) rootView.findViewById(R.id.t);
使用
b = (Button)findViewById(R.id.butt);
t = (TextView) findViewById(R.id.t);
答案 1 :(得分:0)
您正在给另一个视图充气,并在那里添加点击监听器。然而,被setContentView()
膨胀的那个人永远不会得到一个听众。将您的代码更改为:
setContentView(R.layout.activity_main);
b = (Button)findViewById(R.id.butt);
t = (TextView) findViewById(R.id.t);
答案 2 :(得分:0)
不要夸大视图,这是多余的。
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b = (Button) findViewById(R.id.butt);
t = (TextView) findViewById(R.id.t);
b.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View view)
{
t.setText("lsdallsd");
Log.d("asadssd","ssdasd");
view.setBackgroundColor(Color.RED);
}
});
}
答案 3 :(得分:0)
无需在活动中使用布局inflater。
public class MainActivity extends AppCompatActivity {
public TextView t;
public Button b;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b = (Button) findViewById(R.id.butt);
t = (TextView) findViewById(R.id.t);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
t.setText("lsdallsd");
Log.d("asadssd", "ssdasd");
view.setBackgroundColor(Color.RED);
}
});
}
}
答案 4 :(得分:0)
确定我自己发现了问题 必须是
b = (Button) findViewById(R.id.butt);
而不是
b = (Button) rootView.findViewById(R.id.butt);
但为什么我不知道 我想膨胀布局 并会给出相同的结果