2016-03-19 15 views
-1

私はむしろプログラミングに新しいですが、私はデータベースの内容を表示するリストビューを持っています。また、押すことができるボタンがあります。問題を抱えているコードimは、リストビューのための私のアダプタクラスにあります。理想的には、ボタンが押された行に関する情報を新しいアクティビティに渡したいと思います。これまでのところ、startActivityを取り出すと、ボタンのテキストを変更できるので、ボタンが機能することがわかりますが、startActivityを追加しようとするとただちにクラッシュします。私が開こうとしているアクティビティは、私がボタンを動作させることができることを知っているので(私はそれを成功と呼んでいます)、これを別のアプリケーションに実装することができます。誰かが、なぜ新しい活動が開かれないのか、それを修正する方法、なぜなら、事前に感謝することができますか?リストビューアアダプタのonclicklistener内の意図

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

//ボタンが 最終ボタンBTN = layoutHandler.BtntoClickをクリックした後、これはメソッドです。

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

参考になる

 private void startActivity(Intent intent) { } 

何のためにあるのかわかりませんか?それはマニフェストにあります – krisC

+0

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

答えて

0

多分あなたの意図に問題が、私はあなたの活動の名前を知らなくても全くわからないが

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

ListDataAdapterは、そこからあなたは、関数を呼び出し、あなたの現在の活動であれば、それがあれば大丈夫ですそうでなければそれは変化する必要がある。

また、私は、このコードは、スタックトレースは、スタックトレースが何であるかを

+0

正直なところ、XMLファイルが添付されていないため、ListDataAdapterがアクティビティとしてクラスであるかどうかはわかりません。 DataListActivityというアクティビティから呼び出されます。これは、listViewのアダプタです。そのコードは最初にコードを入力したときに全体の意図に下線が引かれ、電球を押したときにそのコードが挿入されたため、「コンストラクタを解決できません。スタックトレースが何を意味するのかもあまりよく分かりません。 – krisC

+0

私が知っている限り、startActivity関数は必要ではなく、ListDataAdapter.thisは、遷移元のアクティビティの名前でなければなりません。だから私はそれがDataListActivityでなければならないと信じています。 – Tony

+0

私はstartActivity関数を取り出し、DataListActivityに変更しました。これはstartActivity(intent)に下線を引いて、 "ActivityCompatのstartActivity()が適用されます"とし、DataListActivityに変更しました。 "DataListActivityは包囲クラス " – krisC