1) в папке меню:я хочу chnage значение TextView в андроида меню
<item
android:id="@+id/action_info"
android:icon="@drawable/notification"
android:orderInCategory="2"
android:title="Notification"
app:showAsAction="always"/>
2) feed_updated_counter в папке макета
<ImageView
android:id="@+id/menu_item_notificationss"
android:layout_width="45dp"
android:layout_height="fill_parent"
android:clickable="true"
android:src="@drawable/notification" />
<!-- Badge Count -->
<TextView
android:id="@+id/actionbar_notifcation_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_alignParentRight="true"
android:background="@drawable/shape_notification"
android:textColor="#ffffff"
android:paddingLeft="3dp"
android:paddingRight="3dp"
android:gravity="center" />
3) landingActivity в Java файл
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
MenuItem item = menu.findItem(R.id.action_info);
MenuItemCompat.setActionView(item, R.layout.feed_update_count);
int newNotificationCount = DataBaseHelper.DBNotification.getNewNotificationCount();
RelativeLayout notifCount = (RelativeLayout) MenuItemCompat.getActionView(item);
ImageView actionMenu = (ImageView)notifCount.findViewById(R.id.menu_item_notificationss);}
выше код связан с значком значка, в feed_updated_counter Textview будет увеличивать значение, abov e работает нормально, когда приложение открыто. но если приложение открыто и уведомление прибыли, то мне нужно увеличить значение TextView в feed_update_counter файле, там Фор я создал статическую функцию и призван из обработчика гсм файла как
4) статической функции в Landing странице
public static void counterMenu(int a)
{
Thread timer = new Thread() { //new thread
public void run() {
try {
MenuItem item = bageMnu.findItem(R.id.action_info);
MenuItemCompat.setActionView(item, R.layout.feed_update_count);
int newNotificationCount = DataBaseHelper.DBNotification.getNewNotificationCount();
RelativeLayout notifCount = (RelativeLayout) MenuItemCompat.getActionView(item);
ImageView actionMenu = (ImageView)notifCount.findViewById(R.id.menu_item_notificationss);
TextView tv = (TextView) notifCount.findViewById(R.id.actionbar_notifcation_textview);
tv.setVisibility(View.GONE);
} catch (Exception e) {
}
finally {
}
};
};
timer.start();
}
4), а в gcm_handler я называется статической функции LandingActivity
landingActivity.counterMenu (1);
но моя проблема еще не Увеличивает значение TextView
Вам нужно установить как 'tv.setText (a)'; и ваш код выглядит как «критический» –
Я проверил с tv.setText («32»); но не работает – kushal
Объявление Textview вне функции потока. Используйте метод [runOnUiThread] (http://stackoverflow.com/a/27992603/4596556), чтобы установить текстовое представление внутри другого потока. –