2014-11-06 2 views
0

Пытается отображать тост, когда нажимаем на элементы списка, но демонстрируя много ошибок в Visual studio. Коды работают отлично в студии android и я переделаю его для C# с помощью RemobjectC#. Ниже приведены мои mainactivity кодыКак отображать тост при нажатии на элемент списка

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(); 
          } 
        }); 
     */ 
    } 
} 
} 

кода основной компоновка 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> 

я не так много знаний о 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

какую ошибку вы получаете? –

+0

@ManuZi, я отредактировал мой вопрос, отметив некоторую часть ошибки. – user3909370

ответ

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

0

Попробуйте

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

вместо

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

делая адаптер Global или установить его в окончательном

0

Проблема в том, что в C# анонимные типы не могут реализовать методы. В этом случае вам нужно использовать лямбда или реализовать методы в основном классе.

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(); 
         } 
       });