2

我是 android 编程新手,当用户按下按钮时,我试图在屏幕上显示由外部 java 方法返回的某个字符串。

这是我们的按钮:

        <ImageView android:id="@+id/imageView1"
    android:layout_width="300px"
    android:layout_height="400px"
    android:layout_marginTop="743px"
    android:layout_marginLeft="420px"
    android:contentDescription="This is the random facts"
    android:onClick="randomFactClicked"
    android:src="@drawable/wino_guy"/>

这是方法 randomFactClicked

    public String randomFactClicked(View view) {
    String message = randomFactGenerator();
    return message;
}

这是 randomFactGenerator 方法。它本质上是返回 18 个字符串中的一个,这就是我们希望在用户单击按钮时在应用程序上显示的字符串。

    public static String randomFactGenerator()  {

        Random generator = new Random();

        //Generate a random int between 0 and 18
        int rand = generator.nextInt(17);
        String fact = new String("");
        switch (rand) {

        case 0: fact =  "In the early part of the twentieth century, the  drys  or the prohibitionists protested to eliminate the word wine from the college and school texts, including Roman and Greek literature. They also attempted to prove that praises of wine mentioned in Biblical Old Testament are no more than un-fermented grape juice and expressed their views to eliminate medicinal wines from the United States Pharmacopoeia.";
                        break;

        case 1: fact = "Women who drink two glasses of wine a day are more active in bed. In simple words, they enjoy sex better as compared to women who do not drink wine.";
                        break;

        case 2: fact = "The flavour of young wine is known as aroma while a mature wine's flavor is like a bouquet.";
                        break;

        case 3: fact = "A person who constantly talks about wine that she/he will open but never does, is popularly known as a cork-tease.";
                        break;

        case 4: fact = "In ancient Greece, a person hosting the party would drink the wine first just to make sure it was healthy to drink and not poisoned. It was here that the popular phrase drinking to one's health arose. It was in ancient Rome that Toasting started when the Romans continue to follow the Greek tradition. However, they were the people to drop a toasted bread in their wine glasses to moderate excessive acidity and undesirable tastes.";
                        break;

        case 5: fact = "Except for the Book of Jonah, rest of the entire Biblical Old Testament talks about the wine.";
                        break;

        case 6: fact = "You will be astonished to know that early Roman women were not allowed to drink wine. If their husbands found about their wine drinking, they had the liberty to kill them. In 194 B.C.,a divorce also happened due the same reason.";
                        break;

        case 7: fact = "Since wine tasting is all about wine smelling, women of reproductive ages are better wine testers because they have better smell sense than men.";
                        break;

        case 8: fact = "Speyer, a town in Germany is popular as the place where the oldest wine bottle was discovered in A.D. 325, inside one of the two Roman sarcophaguses. The bottle can be seen at the Germany s Historisches Museum der Pfalz .";
                        break;

        case 9: fact = "Highest wine consumption was recorded in the cities of California, Florida and New York of United States of America. France, Italy and Spain are three largest wine producers in the world followed by California.";
                        break;

        case 10: fact = "In their endeavour to dissipate the aroma of wine, wine testers twirl their wine glasses, often filling them up to only one third, in order to avoid splitting of wine during a twirl.";
                        break;

        case 11: fact = "Drinking wine regularly helps you stay fit and healthy. It has also been found that drinking wine reduces the risk of gum diseases, Alzheimer s disease, stroke and heart diseases. So, the next time you drink wine, remember it s health benefits as well.";
                        break;

        case 12: fact = "Make sure you never store wine in the kitchen because it is warm, and thus not an ideal place to store it. Moreover, refrigerators are also not the right place to store wines because even at the warm settings, they are very cold.";
                        break;

        case 13: fact = "While tasting wine, leave the wine in your mouth for a second or two. Then, you can either spit it out in a spittoon or swallow it. A high quality wine not only tastes good but also has a long after-taste. On the other hand, a low quality wine would have a short after-taste.";
                        break;

        case 14: fact = "Ripe and rich dark shades of wine such as the most golden whites, deepest & blackest reds are produced at places that have warmer climate, whereas less lush and lighter shades of wine like white wines are produced at cooler climates. Not many people know that with time white wine becomes golden and brown yellow while red wines lose their colour and turns into a brick red colour.";
                        break;

        case 15: fact = "The European Union has decided that any sparkling wine produced outside France cannot be labelled as champagne";
                        break;

        case 16: fact = "Wine when combined with food offers a third flavour or  synergy . This makes your dining experience, a memorable one. When you plan lighter foods in meal, make sure you have light wines to serve and when you prepare heavy and rich food items, opt for heavier wines. In addition, always remember that serving sweet wine with desserts, white wine with fish and red wine with red meat, compliments your meal.";
                        break;

        case 17: fact = "Women who drink excessive wine are at an increased risk of suffering from side effects of wine because the lining of the stomach needed to metabolise alcohol is less in them as compared to men.";
                        break;
        }

    return fact;
}

我们如何从 java 文件中再次访问 XML?我们有我们的消息,但不知何故无法显示它,因为它是由 XML 处理的。

我在这里先向您的帮助表示感谢!

4

2 回答 2

4

简单地,

public String randomFactClicked(View view) 
{
  String message = randomFactGenerator();

  ImageView imageView = (ImageView) view;
  imageView.setContentDescription(message);

  return message;
}

您可以使用view用户按下的小部件的参数。

于 2013-05-12T01:46:16.610 回答
0

System32 的答案是在这种情况下执行此操作的方法,但请查看 View.findViewById 以获取对在 XML 中创建的视图的引用。

于 2013-05-12T04:08:46.140 回答