2013-07-05 208 views
0

我想在我的MainActivity創建一個類:創建構造函數的字符串字符串1,字符串字符串2,字符串STRING3,對象object1

MyCard customCard1 = new MyCard(cardTitle.getText().toString(), 
       cardbuttonon.getText().toString(), 
     cardbuttonon.getText().toString(), 
     cardbuttonon.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       String[] url={"url"}; 
       new onoff(MainActivity.this).execute(url); 
      }}); 
     mCardView.addCard(customCard1); 
     mCardView.refresh(); 

,但他說,我說的構造MyCard(字符串,字符串,字符串,對象不確定是

我怎麼能確定他在我MyCard:

package de.heron.cloudbox; 

import android.content.Context; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.widget.TextView; 

import com.fima.cardsui.objects.Card; 

public class MyCard extends Card { 

    public MyCard(String title, String desc, String string, Object setOnClickListener){ 
     super(title, desc); 
    } 
    @Override 
    public View getCardContent(Context context) { 
     View view = LayoutInflater.from(context).inflate(R.layout.card_ex, null); 

     ((TextView) view.findViewById(R.id.title)).setText(title); 
     ((TextView) view.findViewById(R.id.description)).setText(desc); 

     return view; 
    } 
} 

有人可以幫助我,我的問題

爲什麼我用2個onclicklisteners使其:

MyCardXml customCard1 = new MyCardXml(cardTitle.getText().toString(),cardbuttonon = (Button) findViewById(R.id.cardbuttonon),cardbuttonoff = (Button) findViewById(R.id.cardbuttonoff), 
       cardbuttonon.getText().toString(),cardbuttonoff.getText().toString(), 
     cardbuttonon.getText().toString(),cardbuttonoff.getText().toString(), 
     cardbuttonon.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 

       String[] url={"http://everhome.de/api/applive/", "8ef43502ad3dc04f87b4a48b993878c0","/" + KEY_ID,"/" + KEY_COST}; 
       new onoff(MainActivity.this).execute(url); 
       }} 

       ),cardbuttonoff.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View v) { 
        String[] url={"http://everhome.de/api/applive/", "8ef43502ad3dc04f87b4a48b993878c0","/" + KEY_ID,"/" + KEY_COST}; 
        new onoff(MainActivity.this).execute(url); 
       }} 

       )); 
     mCardView.addCard(customCard1); 
     mCardView.refresh(); 
+0

我不知道你在做什麼,但'MyCard'的構造不即使使用它的一半參數,你的變量名稱也是奇怪的,你的縮進被搞砸了。爲什麼MyCard的構造函數使用一個名爲'setOnClickListener'的參數?這個名字聽起來不像描述一個對象;聽起來像描述了一個動作。 – user2357112

+1

你可以請分享確切的例外。 Beacuse MyCard customCard1 =新的MyCard(..)未完全關閉。 –

+0

要詳細說明Ashish的評論:您在MyCard構造函數調用中缺少一個右括號。 – user2357112

回答

1

你的構造函數需要一個對象作爲第四個參數。你是不是傳遞對象的第四個參數時 你正在構建object.This將解決錯誤

MyCard customCard1 = new MyCard(cardTitle.getText().toString(), 
      cardbuttonon.getText().toString(), 
    cardbuttonon.getText().toString(), 
    new View.OnClickListener() { 
     public void onClick(View v) { 
      String[] url={"url"}; 
      new onoff(MainActivity.this).execute(url); 
     }}); 
+0

謝謝你,你的代碼工作正常。 – Fabian

+0

但什麼時候我有另一個按鈕onclicklistener – Fabian

1

你應該通過View.OnClickListenerMyCard構造函數,而不是Object

變化

public MyCard(String title, String desc, String string, Object setOnClickListener){ 
     super(title, desc); 
    } 

public MyCard(String title, String desc, String string, View.OnClickListener setOnClickListener){ 
0

你有t Ø改變你的構造類似這樣的

public MyCard(String title, String desc, String string, OnClickListener clickListener){ 

} 
相關問題