2014-04-01 79 views
2

如何使用字符串作爲消息來烘烤onItemClickListener? 我正在製作支持多種語言的應用程序,並且我想在不同的語言上顯示敬酒。爲此,我需要使用字符串。那麼我怎樣才能得到烤麪包串並顯示呢?Toast onItemClickListener使用字符串的消息?

list.setOnItemLongClickListener(new OnItemLongClickListener() { 

     @Override 
     public boolean onItemLongClick(AdapterView<?> parent, View view, 
      int position, long id) { 
      switch (position) { 
      case 0: 
       showtost(); 
       break; 
       } 
      return true; 

我嘗試了一些方法,但它沒有奏效。

private void showtost() { 
      // TODO Auto-generated method stub 
      Toast.makeText(this, 
        .getResources().getString(R.string.alarm), 
        Toast.LENGTH_SHORT).show(); 

      return; 
      } 

The method makeText(Context, CharSequence, int) in the type Toast is not applicable for the arguments (new AdapterView.OnItemLongClickListener(){}, 

字符串,INT)

+0

也許添加當前實現的onItemClickListener – donfuxx

+0

U只需在您的應用程序中更改您的區域設置,並從相應的strings.xml中獲取本地化的字符串。 –

+1

我無法理解真正的問題,你需要定義多語言字符串,或者你需要onitemclicklistener烤麪包? –

回答

3

您需要將this更改爲對上下文的引用,例如,如果在活動中使用:

MyActivity.this 

或其片段裏面使用:

getActivity() 

然後您發佈的示例將工作。

1

是的,你可以做這樣的:

Toast.makeText(context, R.string.hello_world, Toast.LENGTH_LONG).show(); 

這裏hello_world可以與您的字符串ID從的strings.xml所取代。

1

你不得不提到那邊的getActivity()。

private void showtost() { 
      // TODO Auto-generated method stub 
      Toast.makeText(getActivity(), 
        .getResources().getString(R.string.alarm), 
        Toast.LENGTH_SHORT).show(); 

      return; 
      } 
1

支持多語言; 你可以在values文件夾中定義strings.xml,你可以添加不同的文件夾名稱爲values-tr(這是土耳其語)。然後你可以設置你的字符串是這樣的:

String my_toast_string=context.getString(R.string.my_string); 

,那麼你可以把你的麪包是這樣的:

Toast.makeText(getActivity(),my_toast_string, Toast.LENGTH_SHORT).show(); 
1

你可以得到的字符串;

String x = getResources()。getString(R.string。語言);

,你可以在res文件夾與語言設置和更改您的字符串文件中有:

文件夾RES /值-CN你犯了一個字符串的文件:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<string name="language">cn</string> 
</resources> 

,如果你犯了一個文件夾RES /值恩你犯了一個字符串的文件:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<string name="language">en</string> 
</resources> 

,現在如果設置在clocklistener您的項目,並添加如下因素代碼:

Toast.makeText(context, language, Toast.LENGTH_SHORT).show(); 

輸出爲「CN」,如果你的語言裝置是中國人,「恩」如果英語

我建議,使在該文件夾資源的默認值/值