我是android studio的新手,我试着做一个测试,在Textview中按两个不同的按钮显示不同的文字。 我的.java代码是
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
import android.view.View.OnClickListener;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView t1;
t1 = (TextView) findViewById(R.id.editText);
t1.setOnClickListener(this);
}
@Override
public void onClick (View v) {
if (v.getId() == R.id.button)
t1.setText("Customer1");
if (v.getId() == R.id.button2)
t1.setText("Custom2");
}
}
无法在
中解析符号't1' t1.setText("Customer1");
import android.view.View.OnClickListener;
显示未使用的import语句。 我想知道代码的哪个部分是错的,以及如何解决它。
THX
答案 0 :(得分:2)
您已编写了onClickLister方法,但尚未实现该接口。
尝试更改此
public class MainActivity extends AppCompatActivity
到此
public class MainActivity extends AppCompatActivity implements View.OnClickListener
在班级中实施onClick(View v)
方法代替onClickListener
关于t1问题。你得到错误的共鸣是因为你将t1声明为局部变量。移动t1使其成为一个全局变量,这应该可以解决问题。喜欢这个
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
public TextView t1;
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
t1 = (TextView) findViewById(R.id.editText);
t1.setOnClickListener(this);
}
@Override
public void onClick (View v) {
if (v.getId() == R.id.button)
t1.setText("Customer1");
if (v.getId() == R.id.button2)
t1.setText("Custom2");
}
}
答案 1 :(得分:1)
实施OnClickListener
public class MainActivity extends AppCompatActivity implements View.OnClickListener
将侦听器设置为您的视图t1.setOnClickListener(this);
并将您的代码添加到onClick()
@Override
public void onClick(View v) {
if (v.getId() == R.id.button)
t1.setText("Customer1");
if (v.getId() == R.id.button2)
t1.setText("Custom2");
}
答案 2 :(得分:0)
使用任何一种方法。
实现界面
public class MainActivity extends AppCompatActivity implements{
TextView t1;
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
t1 = (TextView) findViewById(R.id.editText);
t1.setOnClickListener(this);
}
//its onClick -> Not OnClickListener
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.button:
t1.setText("Customer1");
break;
case R.id.button2:
t1.setText("Custom2");
break;
}
}
}
或创建View.OnClickListener对象
public class MainActivity extends AppCompatActivity {
TextView t1;
@Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
t1 = (TextView) findViewById(R.id.editText);
View.OnClickListener onclickListnere = new View.OnClickListener() {
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.button:
t1.setText("Customer1");
break;
case R.id.button2:
t1.setText("Custom2");
break;
}
}
};
t1.setOnClickListener(onclickListnere);
}
}
更新:
将TextView t1声明为类成员变量。您将其声明为局部变量,因此在onClick方法
中不可用