scif_yar: (Default)
[personal profile] scif_yar
Тут дальше кровь, вырвиглазный ебаный стыд и прочее.
Я ПРЕДУПРЕЖДАЛ !!!1111


Андроид, или еще раз о проблеме на ровном месте.
Дано:
Если в xml прописано вот так
TextView
android:id="@+id/about2"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="123456"
android:background="#E0FFFF"
android:clickable="true"
android:onClick="onClick_testchange_textcolor"

в коде (собсно жабе) вот так
public void onClick_testchange_textcolor(View view) {
// тестирование смены цветов. По онклик
// http://developer.alexanderklimov.ru/android/views/textview.php
// http://developer.alexanderklimov.ru/android/trafficlights.php
TextView change_color = (TextView) findViewById(R.id.about2);
String change_color_onclick = "строка для смены текста";

change_color.setText(change_color_onclick);
}

или так
public void onClick_testchange_textcolor02(View view) {
// тестирование смены цветов. По онклик
// http://developer.alexanderklimov.ru/android/views/textview.php
// http://developer.alexanderklimov.ru/android/trafficlights.php
TextView change_color = (TextView) findViewById(R.id.about2);
// change_color.setTextColor(Color.BLACK);
change_color.setTextColor(Color.GREEN);
}

то все работает. ну, ЗБС, да.
И все бы хорошо - если бы можно было из жабы, когда с нуля в коде делаешь новый TextView, туда взять и прописать
android:clickable="true"
android:onClick="onClick_testchange_textcolor"

А вот почему-то нельзя. Т.е. может и можно, но я не знаю как. И ною.
Вот руки дошли почитать.

Можно делать иначе, можно прямо в (говно)коде писать
View.OnClickListener onclick_Btn01 = new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// по id определеяем кнопку, вызвавшую этот обработчик
Integer id3;
id3 = v.getId();
TextView change_color3_1;

change_color3_1 = (TextView) findViewById(id3);
String change_text_onclick = "строка 333";

change_color3_1.setText(change_text_onclick);
}
};

и дальше в самой жабе уже прописывать
TextView change_color3 = (TextView) findViewById(R.id.about3);
change_color3.setOnClickListener(onclick_Btn01);

так тоже работает.

ну т.е. збс, конечно - можно жахнуть индусским методом - для каждого ИД ..
можно даже циклом.
вот только в методе, которым формируется новый текствью, не указан его ID. Значит, он какой-то.. ну, просто какой-то.
и его надо бы сформировать "как надо", чтобы потом уверенно искать и тащить из цикла.
т.е. вместо одной операции "положить в цикл еще одну строку в генерацию" - надо делать стопицот добавлений.

Что тут поможет?

Set onclick events on textview created programatically

http://stackoverflow.com/questions/13798368/set-onclick-events-on-textview-created-programatically

в жабе:
tv.setClickable(true);
tv.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// do you work here
}
});

Говно то какое, божежты мой.

есть еще
http://stackoverflow.com/questions/9079170/textview-onclick-not-working
http://stackoverflow.com/questions/17630697/setonclicklistener-on-textview
http://stackoverflow.com/questions/9079170/textview-onclick-not-working

неимоверно бомбит.
И не работает.

НЕРАБОТАЕТСССУКА.

Ладно. к id
http://stackoverflow.com/questions/8460680/how-can-i-assign-an-id-to-a-view-programmatically

ну вот я его сформировал в жабе
txv01.setId(10000000+(i3*10000)+j3);

оффтоп.
Say goodbye to findViewById. Say hello to Data Binding Library.
Replace all findViewById boilerplate codes with a single line of code
БЛЯЯЯ
https://inthecheesefactory.com/blog/say-goodbye-to-findviewbyid-with-data-binding-library/en

точнее так.
Вот я его софрмировал в жабе и даже вывел:
// делаем текст кликабельным
txv01.setClickable(true);
//формируем айди по http://stackoverflow.com/questions/8460680/how-can-i-assign-an-id-to-a-view-programmatically
int tmpid200;
tmpid200 = 5000000+((i3+1)*1000)+j3+1;


String tmptxt200500;
tmptxt200500 = text_2draw[i3][j3] + "___" + Integer.toString(tmpid200);
txv01.setId(tmpid200);

// собственно текст
// txv01.setText(text_2draw[i3][j3]);
txv01.setText(tmptxt200500);


- и оно даже выводится, да. В виде как и надо - текст___1000000
АААААААААААААА
ЗАРАБОТАЛО БЛЯЯЯЯЯЯЯЯ
// онклик с сменой текста
TextView change_color3 = (TextView) findViewById(R.id.about3);
change_color3.setOnClickListener(onclick_Btn01);

// попытка онклика по ид для таблицы.
int tmp100500;
tmp100500 = 5001003;
change_color3 = (TextView) findViewById(tmp100500);
change_color3.setOnClickListener(onclick_Btn01);




Пошел варить рис с карри.

Profile

scif_yar: (Default)
scif_yar

December 2025

S M T W T F S
 123456
78910111213
14151617181920
21222324252627
28 293031   

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 25th, 2026 08:50 pm
Powered by Dreamwidth Studios