textview的onclick点击报错 textview 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <TextView android:id="@+id/text1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1.0" android:gravity="center" android:text="@string/home" android:textColor="#000000" android:textSize="12.0dip" android:clickable="true" android:onClick="SendIndex()" /> public void SendIndex(View v) { Toast.makeText(this, "再点击一次退出", Toast.LENGTH_LONG).show(); } 我是初学者,以前做.net C#的,完全搞不明白哪里写的有问题,请各位指教 project --->clean一下,能不能把logCat截图截全了。 onclick方法中设置点击方法不加括号 public void SendIndex() { Toast.makeText(this, "再点击一次退出", Toast.LENGTH_LONG).show(); } NoSuchMethod....方法没找到,或者没有匹配上,SendIndex(View v)去掉“View v”试试吧 android:onClick="SendIndex()"这里不需要括号,只要引号里的值跟方法名一样就行 嗯嗯 ~~ 谢谢各位大侠了 ,确实是android:onClick="SendIndex()"这里的问题,去掉括号就可以了 还有个问题就是 我用t1.setOnClickListener(new View.OnClickListener() 会在打开app时就弹出app被迫关闭 再写点击事件的话最好用监听吧先前看的事例用的就是监听,不过就是报错 ,所以我就试试这种方式上一层里说了 private void InitTextView() { t1 = (TextView) findViewById(R.id.text1); t2 = (TextView) findViewById(R.id.text2); t3 = (TextView) findViewById(R.id.text3); t1.setOnClickListener(new MyOnClickListener(0)); t2.setOnClickListener(new MyOnClickListener(1)); t3.setOnClickListener(new MyOnClickListener(2)); } /** * 头标点击监听*/ public class MyOnClickListener implements View.OnClickListener { private int index = 0; public MyOnClickListener(int i) { index = i; } @Override public void onClick(View v) { Toast.makeText(this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show(); } }; 再写点击事件的话最好用监听吧先前看的事例用的就是监听,不过就是报错 ,所以我就试试这种方式上一层里说了 private void InitTextView() { t1 = (TextView) findViewById(R.id.text1); t2 = (TextView) findViewById(R.id.text2); t3 = (TextView) findViewById(R.id.text3); t1.setOnClickListener(new MyOnClickListener(0)); t2.setOnClickListener(new MyOnClickListener(1)); t3.setOnClickListener(new MyOnClickListener(2)); } /** * 头标点击监听*/ public class MyOnClickListener implements View.OnClickListener { private int index = 0; public MyOnClickListener(int i) { index = i; } @Override public void onClick(View v) { Toast.makeText(this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show(); } }; MyOnClickListener类里面的onClick方法中的this有问题,用activity的类名.this 再写点击事件的话最好用监听吧先前看的事例用的就是监听,不过就是报错 ,所以我就试试这种方式上一层里说了 private void InitTextView() { t1 = (TextView) findViewById(R.id.text1); t2 = (TextView) findViewById(R.id.text2); t3 = (TextView) findViewById(R.id.text3); t1.setOnClickListener(new MyOnClickListener(0)); t2.setOnClickListener(new MyOnClickListener(1)); t3.setOnClickListener(new MyOnClickListener(2)); } /** * 头标点击监听*/ public class MyOnClickListener implements View.OnClickListener { private int index = 0; public MyOnClickListener(int i) { index = i; } @Override public void onClick(View v) { Toast.makeText(this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show(); } }; MyOnClickListener类里面的onClick方法中的this有问题,用activity的类名.this你说的是Toast.makeText(this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show();这一句里面的吗?这个是我为了做测试后来加上去的,去掉这句也是报错的 再写点击事件的话最好用监听吧先前看的事例用的就是监听,不过就是报错 ,所以我就试试这种方式上一层里说了 private void InitTextView() { t1 = (TextView) findViewById(R.id.text1); t2 = (TextView) findViewById(R.id.text2); t3 = (TextView) findViewById(R.id.text3); t1.setOnClickListener(new MyOnClickListener(0)); t2.setOnClickListener(new MyOnClickListener(1)); t3.setOnClickListener(new MyOnClickListener(2)); } /** * 头标点击监听*/ public class MyOnClickListener implements View.OnClickListener { private int index = 0; public MyOnClickListener(int i) { index = i; } @Override public void onClick(View v) { Toast.makeText(this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show(); } }; MyOnClickListener类里面的onClick方法中的this有问题,用activity的类名.this你说的是Toast.makeText(this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show();这一句里面的吗?这个是我为了做测试后来加上去的,去掉这句也是报错的InitTextView() 这个我是放在onCreate里面最后一行,不知道 位置影响执行吗?不过我都试过几个位置,都是报错 再写点击事件的话最好用监听吧先前看的事例用的就是监听,不过就是报错 ,所以我就试试这种方式上一层里说了 private void InitTextView() { t1 = (TextView) findViewById(R.id.text1); t2 = (TextView) findViewById(R.id.text2); t3 = (TextView) findViewById(R.id.text3); t1.setOnClickListener(new MyOnClickListener(0)); t2.setOnClickListener(new MyOnClickListener(1)); t3.setOnClickListener(new MyOnClickListener(2)); } /** * 头标点击监听*/ public class MyOnClickListener implements View.OnClickListener { private int index = 0; public MyOnClickListener(int i) { index = i; } @Override public void onClick(View v) { Toast.makeText(this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show(); } }; MyOnClickListener类里面的onClick方法中的this有问题,用activity的类名.this你说的是Toast.makeText(this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show();这一句里面的吗?这个是我为了做测试后来加上去的,去掉这句也是报错的InitTextView() 这个我是放在onCreate里面最后一行,不知道 位置影响执行吗?不过我都试过几个位置,都是报错你确定代码编译过去了? 回复#16 : 应该是编译过去了吧? 呃,模拟的虚拟设置的界面可以出来,就是app一点就被迫关闭了请原谅偶~~~是初初学者,以前也不是做java的,很多东西不懂 Toast.makeText(this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show();this改成(你的activity).this 为什么不用监听? 很简单的。代码:...TextView tv1 = (TextView)findViewById(R.id.tv1); tv1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Log.d("Logcat Debug", "Debug: You clicked TextView..."); Toast.makeText(MainActivity.this, "再点击一次退出: "+v.getId(), Toast.LENGTH_LONG).show(); } });... 其实楼上的方法是最好也最常用的,代码条理清晰易于修改。楼主既然已经学Android开发,编码规范也最好参考一下,不容易出些莫名其妙的问题。如果还想在源代码段上修改,试试下面这样的方式,看看怎么样:private void InitTextView() { t1 = (TextView) findViewById(R.id.text1); t2 = (TextView) findViewById(R.id.text2); t3 = (TextView) findViewById(R.id.text3); MyOnClickListener myonclickListener=new MyOnClickListener( ); t1.setOnClickListener(myonclickListener); t2.setOnClickListener(myonclickListener); t3.setOnClickListener(myonclickListener); } /** * 头标点击监听*/ public class MyOnClickListener implements View.OnClickListener { @Override public void onClick(View v) { switch(v.getId()) { case R.id.text1:Toast.makeText(MainActivity.this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show(); case R.id.text2:Toast.makeText(MainActivity.this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show(); case R.id.text3:Toast.makeText(MainActivity.this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show(); } } }; 感谢楼上两大侠~ 我知道我的问题在哪里了,因为我的eclipse是最新版,新建的项目默认是带碎片xml的,而我的所有组件是写在这个fragment.xml里,所以在获取的时候应该也要写到这个对应的方法下,现在已经解决了 之前是写的mainactivity里是获取不到那些组件的也感谢上面楼层的大侠的提示:说获取的组件为null然后就往这方面考虑,为什么获取不到 这个,跟eclipse 版本没什么关系吧,可能和ADT plugin的版本有点关系。在新建project 的向导界面,应该允许你去选择创建什么样的activity, 缺省的是blank activity, 就是带一个 textview 显示"Hello world" . Android网络图片问题 activity与布局文件layout是什么关系呢 PhoneGap+JQM程序无故退出 取得Activity栈里的所有或某一Activity 达人帮忙!android应用如何捕获软键盘的弹出和隐藏?? Android GPS问题 关于android的应用开发最终回归的看法 Activity读取的XML内,控件太多导致超出屏幕长度范围,显示出错,求解决方法~ 自学安卓困扰,刚开始就需要学fragment吗? Android ListView的问题。 想问下编译内核的问题 关于AndroidSDK5.0的问题
android:id="@+id/text1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1.0"
android:gravity="center"
android:text="@string/home"
android:textColor="#000000"
android:textSize="12.0dip"
android:clickable="true"
android:onClick="SendIndex()" />
public void SendIndex(View v)
{
Toast.makeText(this, "再点击一次退出", Toast.LENGTH_LONG).show();
}
public void SendIndex()
{
Toast.makeText(this, "再点击一次退出", Toast.LENGTH_LONG).show();
}
这里不需要括号,只要引号里的值跟方法名一样就行
我用t1.setOnClickListener(new View.OnClickListener() 会在打开app时就弹出app被迫关闭
先前看的事例用的就是监听,不过就是报错 ,所以我就试试这种方式上一层里说了 private void InitTextView() {
t1 = (TextView) findViewById(R.id.text1);
t2 = (TextView) findViewById(R.id.text2);
t3 = (TextView) findViewById(R.id.text3); t1.setOnClickListener(new MyOnClickListener(0));
t2.setOnClickListener(new MyOnClickListener(1));
t3.setOnClickListener(new MyOnClickListener(2));
}
/**
* 头标点击监听
*/
public class MyOnClickListener implements View.OnClickListener {
private int index = 0; public MyOnClickListener(int i) {
index = i;
} @Override
public void onClick(View v) {
Toast.makeText(this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show();
}
};
先前看的事例用的就是监听,不过就是报错 ,所以我就试试这种方式上一层里说了 private void InitTextView() {
t1 = (TextView) findViewById(R.id.text1);
t2 = (TextView) findViewById(R.id.text2);
t3 = (TextView) findViewById(R.id.text3); t1.setOnClickListener(new MyOnClickListener(0));
t2.setOnClickListener(new MyOnClickListener(1));
t3.setOnClickListener(new MyOnClickListener(2));
}
/**
* 头标点击监听
*/
public class MyOnClickListener implements View.OnClickListener {
private int index = 0; public MyOnClickListener(int i) {
index = i;
} @Override
public void onClick(View v) {
Toast.makeText(this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show();
}
};
MyOnClickListener类里面的onClick方法中的this有问题,用activity的类名.this
先前看的事例用的就是监听,不过就是报错 ,所以我就试试这种方式上一层里说了 private void InitTextView() {
t1 = (TextView) findViewById(R.id.text1);
t2 = (TextView) findViewById(R.id.text2);
t3 = (TextView) findViewById(R.id.text3); t1.setOnClickListener(new MyOnClickListener(0));
t2.setOnClickListener(new MyOnClickListener(1));
t3.setOnClickListener(new MyOnClickListener(2));
}
/**
* 头标点击监听
*/
public class MyOnClickListener implements View.OnClickListener {
private int index = 0; public MyOnClickListener(int i) {
index = i;
} @Override
public void onClick(View v) {
Toast.makeText(this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show();
}
};
MyOnClickListener类里面的onClick方法中的this有问题,用activity的类名.this
你说的是Toast.makeText(this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show();
这一句里面的吗?这个是我为了做测试后来加上去的,去掉这句也是报错的
先前看的事例用的就是监听,不过就是报错 ,所以我就试试这种方式上一层里说了 private void InitTextView() {
t1 = (TextView) findViewById(R.id.text1);
t2 = (TextView) findViewById(R.id.text2);
t3 = (TextView) findViewById(R.id.text3); t1.setOnClickListener(new MyOnClickListener(0));
t2.setOnClickListener(new MyOnClickListener(1));
t3.setOnClickListener(new MyOnClickListener(2));
}
/**
* 头标点击监听
*/
public class MyOnClickListener implements View.OnClickListener {
private int index = 0; public MyOnClickListener(int i) {
index = i;
} @Override
public void onClick(View v) {
Toast.makeText(this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show();
}
};
MyOnClickListener类里面的onClick方法中的this有问题,用activity的类名.this
你说的是Toast.makeText(this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show();
这一句里面的吗?这个是我为了做测试后来加上去的,去掉这句也是报错的
InitTextView() 这个我是放在onCreate里面最后一行,不知道 位置影响执行吗?不过我都试过几个位置,都是报错
先前看的事例用的就是监听,不过就是报错 ,所以我就试试这种方式上一层里说了 private void InitTextView() {
t1 = (TextView) findViewById(R.id.text1);
t2 = (TextView) findViewById(R.id.text2);
t3 = (TextView) findViewById(R.id.text3); t1.setOnClickListener(new MyOnClickListener(0));
t2.setOnClickListener(new MyOnClickListener(1));
t3.setOnClickListener(new MyOnClickListener(2));
}
/**
* 头标点击监听
*/
public class MyOnClickListener implements View.OnClickListener {
private int index = 0; public MyOnClickListener(int i) {
index = i;
} @Override
public void onClick(View v) {
Toast.makeText(this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show();
}
};
MyOnClickListener类里面的onClick方法中的this有问题,用activity的类名.this
你说的是Toast.makeText(this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show();
这一句里面的吗?这个是我为了做测试后来加上去的,去掉这句也是报错的
InitTextView() 这个我是放在onCreate里面最后一行,不知道 位置影响执行吗?不过我都试过几个位置,都是报错你确定代码编译过去了?
请原谅偶~~~是初初学者,以前也不是做java的,很多东西不懂
this改成(你的activity).this
...
TextView tv1 = (TextView)findViewById(R.id.tv1);
tv1.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.d("Logcat Debug", "Debug: You clicked TextView...");
Toast.makeText(MainActivity.this, "再点击一次退出: "+v.getId(), Toast.LENGTH_LONG).show();
}
});
...
如果还想在源代码段上修改,试试下面这样的方式,看看怎么样:
private void InitTextView() {
t1 = (TextView) findViewById(R.id.text1);
t2 = (TextView) findViewById(R.id.text2);
t3 = (TextView) findViewById(R.id.text3);
MyOnClickListener myonclickListener=new MyOnClickListener( );
t1.setOnClickListener(myonclickListener);
t2.setOnClickListener(myonclickListener);
t3.setOnClickListener(myonclickListener);
}
/** * 头标点击监听*/
public class MyOnClickListener implements View.OnClickListener {
@Override
public void onClick(View v) {
switch(v.getId())
{
case R.id.text1:Toast.makeText(MainActivity.this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show();
case R.id.text2:Toast.makeText(MainActivity.this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show();
case R.id.text3:Toast.makeText(MainActivity.this, "再点击一次退出"+v.getId(), Toast.LENGTH_LONG).show();
}
}
};
然后就往这方面考虑,为什么获取不到
"Hello world" .