I read the hellowidget tutorial and Dev Guide' App Widgets. Then I know how to create a widget which contains button or text or something.
But what I really want to do is making it interact with my app. For example, I want to create a widget that has a text view, and when I click it, it sends a PendingIntent to my activity in which I can edit the text.
I can do the step "sends a PendingIntent". But after I edit text in acitivy, how does the widget read it?
You have to use the RemoteViews class to do it. Create an instance of RemoteViews class inside your AppWidgetProvider's onRefresh method and use the methods in it...
Note that RemoteViews is limited in functionality when compared with the standard app views. But, you can achieve what you wanted to do with what they provide.
What you need to do is register a custom intent, for example ACTION_TEXT_CHANGED in your AppWidgetProvider like this for example:
After this, you need to register in your AndroidManifest.xml that you want to receive this intents in the intent-filter section of your receiver tag like this:
Then you have to extend the onReceive method in your AppWidgetProvider and make sure that you're handling your intent like this:
After all the above is set up, you just need to broadcast the intent in your activity after the text has changed like this:
Where "NewString" should be changed to the name you to give the the string.
I hope it helps.