我基本上是在构建一个小型测验应用,对于每个问题,在4种不同的textview中有4个答案。我想知道的是用户单击了哪个textview。
答案 0 :(得分:0)
有很多方法可以做到这一点。最简单的事情是创建一个带有一个参数的方法,然后每个TextView
的{{1}}将使用不同的参数调用该方法。
OnClickListener
答案 1 :(得分:0)
您可以为TextView提供不同的ID,并通过以下方式设置onclickListener
TextView textView=(TextView)findViewById(R.id.textView);
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
然后执行您想要的任何任务。在这里,您可以使用if else语句来随后检查答案。
答案 2 :(得分:0)
您可以通过将onClickListeners应用于textView来轻松实现此目的,以下代码可能会有所帮助:
TextView mTvAnswer1, mTvAnswer2, mTvAnswer3, mTvAnswer4;
mTvAnswer1 = findViewById(R.id.text_1);
// similarly find other textviews
mTvAnswer1.setOnClickListener(this);
mTvAnswer2.setOnClickListener(this);
mTvAnswer3.setOnClickListener(this);
mTvAnswer4.setOnClickListener(this);
然后,您可以按如下所示覆盖onClick():
@Override
public void onClick(View v){
switch (v.getId()){
case R.id.text1:
// First option clicked
break;
case R.id.text2:
// Second option clicked
break;
case R.id.text3:
// Third option clicked
break;
case R.id.text4:
// Fourth option clicked
break;
} }
答案 3 :(得分:0)
尝试:
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import com.example.dgnc.testproject.R;
public class YourClass extends AppCompatActivity implements View.OnClickListener{
TextView view1,view2;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
view1 = (TextView)findViewById(R.id.text);
view2 = (TextView)findViewById(R.id.text2);
view1.setOnClickListener(this);
view2.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(),"clicked textView :
"+v.getId(),Toast.LENGTH_LONG).show();
switch (v.getId()){
case R.id.text :
// do somthing
break;
case R.id.text2 :
//do somthing
break;
}
}
}