2016-03-19 24 views
-1

Programlama konusunda yeni bir programım var, ancak bir veritabanının içeriğini gösteren bir liste görünümüm var. Ayrıca basılabilen bir düğme vardır. ile ilgili sorun yaşıyorum listview için benim adaptör sınıfında. İdeal olarak, butonun yeni aktiviteye basıldığı satır hakkında bilgi aktarmak istiyorum. Şimdiye kadar startActivity'i çıkarırsam düğmenin metnini değiştirebilirim, bu yüzden düğmenin çalıştığını biliyorum, ancak bir startActivity eklemeye başladığım anda sadece çökecektir. Açmaya çalıştığım etkinlik sadece bu yüzden düğmeyi çalıştırabileceğimi biliyorum (bu yüzden başarı olarak adlandırdım), böylece bunu başka bir uygulamaya uygulayabilirim. Birisi bana yeni faaliyetin neden açılmadığını ve nasıl düzeltileceğini anlatan yardım edebilir, şimdiden teşekkürler.bir liste görüntüleme bağdaştırıcısındaki onclicklistener içinde amaçlanıyor

@Override 
public View getView(int position,View convertView,ViewGroup parent) 
{ 

    View row = convertView; 
    final LayoutHandler layoutHandler; 
    if(row == null) 
    { 
     LayoutInflater layoutInflater = (LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     row = layoutInflater.inflate(R.layout.row_layout,parent,false); 
     layoutHandler = new LayoutHandler(); 
     layoutHandler.NAME = (TextView)row.findViewById(R.id.tvViewRow); 
     layoutHandler.BtntoClick = (Button)row.findViewById(R.id.BtnToClick); 
     row.setTag(layoutHandler); 


    } 
    else 
    { 
     layoutHandler = (LayoutHandler) row.getTag(); 
    } 
    DataProvider dataProvider = (DataProvider)this.getItem(position); 
    layoutHandler.NAME.setText(dataProvider.getName()); 

// bu düğmeye nihai Düğme btn adında = layoutHandler.BtntoClick tıklandığında edildikten sonra yöntemdir;

btn.setOnClickListener(new View.OnClickListener(){ 


     @Override 
     public void onClick(View view) { 

      btn.setText("clicked"); 
      Log.e("intent builder", "onClick method started"); 
      Intent intent = new Intent(ListDataAdapter.this, Success.class); 
      startActivity(intent); 


     } 

     private void startActivity(Intent intent) { 

     } 


    }); 

    return row; 


} 
+0

bir yığın izleme nedir? ve bu, – krisC

+0

http://stackoverflow.com/questions/3988788/what-is-a-stack-trace-and-how-can-i-use-it-to-debug-my-application-errors adresindedir. –

cevap

0

belki niyet sorun ama sizin faaliyetlerinin ismini bilmeden tamamen emin değilim

Intent intent = new Intent(ListDataAdapter.this, Success.class); 

ListDataAdapter hangi sizin işlevini çağırarak geçerli etkinlik ise o zaman eğer gayet o zaman değişmek zorunda değil.

Ayrıca ben bu kod

 private void startActivity(Intent intent) { 

    } 

için ne olduğundan emin değilim Bir yığın izlemesi yararlı olacaktır

+0

Açıkçası, ListDataAdapter'ın bir etkinlik olarak sınıflar olup olmadığından emin değilim çünkü ekli bir XML dosyasına sahip değil. ListView için bağdaştırıcısı olduğundan DataListActivity adlı bir etkinlikten çağrılır. Bu kod var çünkü kodu ilk yazdığımda tüm niyetin altı çizildi ve ampule bastığımda bu kodu eklediğinde, artık sadece parantez içinde neyin "kurucuyu çözemeyeceğini" altını çiziyor. Ayrıca bir yığın izi ile ne demek istediğinden emin değilim? – krisC

+0

StartActivity işlevinin gerekli olmadığını bildiğim kadarıyla ve ListDataAdapter.this geçiş yapmak istediğiniz etkinliğin adı olmalıdır. Bu yüzden DataListActivity olması gerektiğine inanıyorum. – Tony

+0

Şimdi StartActivity işlevini çıkardım ve bunu DataListActivity.this olarak değiştirdim ve şimdi startActivity (niyet) 'in altını çiziyor ve ActivityCompat bağlantısında "startActivity() öğesi" uygulanıp "DataListActivity.this olarak değiştirildi" diyerek "DataListActivity değil" diyor. bir kapsayıcı sınıf " – krisC

İlgili konular