2014-11-06 40 views
0

嘗試在點擊列表項時顯示烤麪包,但在Visual Studio中顯示很多錯誤。 這些代碼在Android工作室中工作正常,我使用RemobjectC#將它重新制作成C#。 下面是我mainactivity代碼主要佈局的xml文件如何在點擊列表項目時顯示烤麪包

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" > 

     <ListView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/theListView"></ListView> 

</LinearLayout> 

using System; 
using java.util; 
using android.app; 
using android.content; 
using android.os; 
using android.util; 
using android.view; 

using android.widget; 

namespace org.me.androidapplication8 
{ 

public class MainActivity: Activity { 

    protected override void onCreate(Bundle savedInstanceState) { 
     base.onCreate(savedInstanceState); 
     ContentView = R.layout.main; 

     // Simple array with a list of my favorite TV shows 
     String[] favoriteTVShows = {"Pushing Daisies", "Better Off Ted", 
       "Twin Peaks", "Freaks and Geeks", "Orphan Black", "Walking Dead", 
       "Breaking Bad", "The 400", "Alphas", "Life on Mars"}; 
     ListAdapter theAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, favoriteTVShows); 
     ListView theListView = (ListView)findViewById(R.id.theListView); 
     theListView.setAdapter(theAdapter); 
     /*ERROR part 
     theListView.setOnItemClickListener(new 
        AdapterView.OnItemClickListener() { 

          public override void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { 
          String tvShowPicked = "You selected" + 
            String.valueOf(adapterView.getItemAtPosition(position)); 
           Toast.makeText(MainActivity.this, tvShowPicked, Toast.LENGTH_SHORT).show(); 
          } 
        }); 
     */ 
    } 
} 
} 

代碼我沒有C#的很多知識。請建議我如何改造它的C#,爲什麼我收到此錯誤

這些都是錯誤

theListView.setOnItemClickListener(new //Error:- cannot instantiate interface type 
public override void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { //Syntax error Syntax error 
    String tvShowPicked = "You selected " + favoriteTVShows[position];//Unknown identifier (position) 
    Toast.makeText(MainActivity.this, tvShowPicked, Toast.LENGTH_SHORT).show(); //identifier expected(this) 
      } 
        });//Type expected 
//(E374) opening parenthesis or less expected, got closing brace 
//(E1) semicolon expected, got "public" 


... 
+0

你會得到什麼錯誤? – 2014-11-06 08:10:32

+0

@ManuZi,我編輯了我提到的一些錯誤部分的問題。 – user3909370 2014-11-06 08:42:42

回答

0
theListView.setOnItemClickListener(new 
        AdapterView.OnItemClickListener() { 

          public override void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { 
          String tvShowPicked = "You selected " + favoriteTVShows[position]; 
           Toast.makeText(MainActivity.this, tvShowPicked, Toast.LENGTH_SHORT).show(); 
          } 
        }); 

你的代碼替換此。

+0

謝謝@AnujSharma,仍然有同樣的錯誤 – user3909370 2014-11-06 09:55:41

0

嘗試的

String tvShowPicked = "You selected"+String.valueOf(adapterView.getItemAtPosition(position)); 

String tvShowPicked = "You selected"+String.valueOf(theAdapter.getItemAtPosition(position)); 

,而不是通過使適配器的全球或將其設置爲最終

0

的問題是,在C#中匿名類型不能實現方法。在這種情況下,您需要使用lambda或實現主類中的方法。

0

我用@ AnujSharma的回答,改變一下代碼:

theListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { 

      String tvShowPicked = "You selected " + favouriteTVShows[position]; 
      Toast.makeText(MainActivity.this, tvShowPicked, Toast.LENGTH_SHORT).show(); 

     } 
    }); 

相反的:

theListView.setOnItemClickListener(new 
       AdapterView.OnItemClickListener() { 

         public override void onItemClick(AdapterView<?> adapterView, View view, int position, long id) { 
         String tvShowPicked = "You selected " + favoriteTVShows[position]; 
          Toast.makeText(MainActivity.this, tvShowPicked, Toast.LENGTH_SHORT).show(); 
         } 
       }); 
相關問題