Android Studio如何知道单击了哪个textview?

时间:2018-06-28 22:05:36

标签: java android onclicklistener

我基本上是在构建一个小型测验应用,对于每个问题,在4种不同的textview中有4个答案。我想知道的是用户单击了哪个textview。

4 个答案:

答案 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;
    }

}

}