작성한 코드 중 일부를 사용하여 프로그래밍 방식으로 많은 textview를 만들었습니다. 클릭 할 때 액션을 수행해야하므로이 텍스트 뷰를위한 효율적인 단일 리스너를 만들고 싶습니다. 어떤 textview가 탭되었는지 알고 프로그래밍 방식으로 리스너를 연결하려면 어떻게해야합니까?안드로이드에서 프로그래밍 방식으로 여러 textviews에 대한 단일 onclick 리스너를 만들었습니다.
추신 : XML 레이아웃 파일을 사용하여 솔루션을 게시하지 마십시오. 미리 감사드립니다.
optionCubesTextviews = new TextView[cubesLength];
for(i=0;i<cubesLength;i++) {
optionCubesTextviews[i] = new TextView(this);
optionCubesTextviews[i].setId(View.generateViewId());
optionCubesTextviews[i].setTextSize(baseFont);
final RelativeLayout.LayoutParams optionCubesTextviewsParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
optionCubesTextviewsParams.addRule(RelativeLayout.BELOW, solutionCubeTextviews[i].getId());
if (i != 0) {
optionCubesTextviewsParams.addRule(RelativeLayout.RIGHT_OF, optionCubesTextviews[i - 1].getId());
}
optionCubesTextviewsParams.setMargins(10, 10, 10, 10);
optionCubesTextviews[i].setPadding(20, 20, 20, 20);
optionCubesTextviews[i].setTypeface(Typeface.DEFAULT);
//String qTextColorColor = preferenceFile.getString("qTextColor", DefaultManager.qTextColor);
optionCubesTextviews[i].setTextColor(Color.WHITE);
optionCubesTextviews[i].setBackgroundColor(Color.parseColor(randomColorString));
optionCubesTextviews[i].setText(Character.toString(shuffledAnswerAsOptions.charAt(i)));
optionCubesTextviews[i].setVisibility(View.VISIBLE);
//Adding to Layout in invisible state
rLayout.addView(optionCubesTextviews[i], optionCubesTextviewsParams);
}
onclicklistner를 구현 한 다음 optionCubesTextviews.setOnclicklistner (this)를 설정하십시오. 모든 텍스트 뷰에 사용하는 Onclick 메서드에 공통 코드를 넣습니다. –
https://stackoverflow.com/questions/46108600/get-text-from-dynamically-created-edittext-on-click-of-a-button 여기를 참조하십시오 –