android-textview中点击崩溃

extend baseActivity,但是textview 中一个简单的onClick总是崩溃。

TextView labelName_view = (TextView) findViewById(R.id.labelName);
labelName_view.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        // animazione automatica al click
        LinearLayout contenitore_cibo_l=(LinearLayout) findViewById(R.id.bottom_container);
        LayoutParams lp = (LayoutParams) contenitore_cibo_l.getLayoutParams();
        System.out.println(lp.topMargin);
        //contenitore_cibo_l.startAnimation(makeAnimation_ordini(400, 25));
    }
});

崩溃于:

05-27 12:30:22.722: E/AndroidRuntime(2932): FATAL EXCEPTION: main
05-27 12:30:22.722: E/AndroidRuntime(2932): java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to android.app.ActionBar$LayoutParams
05-27 12:30:22.722: E/AndroidRuntime(2932):     at com.web_pos.android.OrderActivity$4.onClick(OrderActivity.java:296)
05-27 12:30:22.722: E/AndroidRuntime(2932):     at android.view.View.performClick(View.java:3511)
05-27 12:30:22.722: E/AndroidRuntime(2932):     at android.view.View$PerformClick.run(View.java:14105)
05-27 12:30:22.722: E/AndroidRuntime(2932):     at android.os.Handler.handleCallback(Handler.java:605)
05-27 12:30:22.722: E/AndroidRuntime(2932):     at android.os.Handler.dispatchMessage(Handler.java:92)
05-27 12:30:22.722: E/AndroidRuntime(2932):     at android.os.Looper.loop(Looper.java:137)
05-27 12:30:22.722: E/AndroidRuntime(2932):     at android.app.ActivityThread.main(ActivityThread.java:4424)
05-27 12:30:22.722: E/AndroidRuntime(2932):     at java.lang.reflect.Method.invokeNative(Native Method)
05-27 12:30:22.722: E/AndroidRuntime(2932):     at java.lang.reflect.Method.invoke(Method.java:511)
05-27 12:30:22.722: E/AndroidRuntime(2932):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
05-27 12:30:22.722: E/AndroidRuntime(2932):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
05-27 12:30:22.722: E/AndroidRuntime(2932):     at dalvik.system.NativeStart.main(Native Method)

2个回答

类型转换异常,你把RelativeLayout 强转成了ActionBar

LinearLayout contenitore_cibo_l=(LinearLayout) findViewById(R.id.bottom_container);
强制转换错误

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android调试- 删除TextView,Button和Layout引发崩溃
当我点击按钮来删除一个TextView ,Button 和 LinearLayout.时,程序崩溃。下面是logcat输出,当我想在118行删除View时就崩溃了。 tasklayout.removeView(taskbutton); 04-15 14:35:58.222: E/AndroidRuntime(632): java.lang.NullPointerException 04-15 14:35:58.222: E/AndroidRuntime(632): at com.com.com.addtask.deltask(addtask.java:118) 04-15 14:35:58.222: E/AndroidRuntime(632): at com.com.com.addtask$2.onClick(addtask.java:65) 04-15 14:35:58.222: E/AndroidRuntime(632): at android.view.View.performClick(View.java:3511) 04-15 14:35:58.222: E/AndroidRuntime(632): at android.view.View$PerformClick.run(View.java:14105) 04-15 14:35:58.222: E/AndroidRuntime(632): at android.os.Handler.handleCallback(Handler.java:605) onClickListner 和 deltask void Button delt = (Button) findViewById(R.id.btndelete1); delt.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { deltask(v); } }); public void deltask(View v) { SharedPreferences datatask; datatask = getSharedPreferences(filename, 0); int tnum = datatask.getInt("tasknumber", 1); int layoutnum = 1000 + tnum; int textviewnum = 1100 + tnum; int buttonviewnum = 1200 + tnum; LinearLayout layout = (LinearLayout) findViewById(R.id.taskll); LinearLayout tasklayout = (LinearLayout) findViewById(layoutnum); TextView tasktv = (TextView) findViewById(textviewnum); Button taskbutton = (Button) findViewById(buttonviewnum); tasklayout.removeView(taskbutton); tasklayout.removeView(tasktv); layout.removeView(tasklayout); }
Android 单击TextView程序崩溃
<p>&lt;TextView <br>    android:layout_width="fill_parent" <br>    android:layout_height="wrap_content" <br>    android:text="@string/myemail" <br>    android:textColor="#FFFFFF" <br>    android:textSize="16px" <br>    android:background="#26B0DE" <br>    android:layout_marginTop="3px" <br>    <span style="color: red;">android:autoLink="email"</span> <br>    /&gt;</p> <p> TextView中的文字为:测试<a href="mailto:ooooo@gmail.com">ooooo@gmail.com</a></p> <p>单击TextView后程序崩溃,提示:Unsupported action</p> <p>DMMS中的异常如下所示:</p> <p>03-15 09:26:11.330: ERROR/InputDispatcher(39): channel '4054e430 lan.android.ui/lan.android.ui.UIActivity (server)' ~ Consumer closed input channel or an error occurred.  events=0x8<br>03-15 09:26:11.330: ERROR/InputDispatcher(39): channel '4054e430 lan.android.ui/lan.android.ui.UIActivity (server)' ~ Channel is unrecoverably broken and will be disposed!<br>03-15 09:26:12.449: ERROR/InputDispatcher(39): Received spurious receive callback for unknown input channel.  fd=180, events=0x8<br>03-15 09:26:12.449: ERROR/InputDispatcher(39): Received spurious receive callback for unknown input channel.  fd=165, events=0x8<br>03-15 09:26:12.460: ERROR/InputDispatcher(39): Received spurious receive callback for unknown input channel.  fd=173, events=0x8<br>03-15 09:26:12.460: ERROR/InputDispatcher(39): Received spurious receive callback for unknown input channel.  fd=176, events=0x8<br>03-15 09:26:12.480: ERROR/InputDispatcher(39): Received spurious receive callback for unknown input channel.  fd=179, events=0x8<br>03-15 09:26:12.480: ERROR/InputDispatcher(39): Received spurious receive callback for unknown input channel.  fd=182, events=0x8</p>
android倒计时程序的崩溃问题
必须在分钟和秒两栏中都输入才可以正常计时,否则会崩溃,这是为什么??求大侠帮忙!!! Java代码是 ```package com.example.countt; import java.util.Timer; import java.util.TimerTask; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class MainActivity extends Activity implements OnClickListener { private EditText etMinute, etSecond; private Button btnStartTime, btnStopTime; private TextView time; private int i = 0; private int i2 = 0; private Timer timer = null; private TimerTask task = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initViews(); } private void initViews() { etMinute = (EditText) findViewById(R.id.etMinute); etSecond = (EditText) findViewById(R.id.etSecond); btnStartTime = (Button) findViewById(R.id.btnStartTime); btnStopTime = (Button) findViewById(R.id.stopTime); time = (TextView) findViewById(R.id.time); btnStartTime.setOnClickListener(this); btnStopTime.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btnStartTime: i = Integer.parseInt(etSecond.getText().toString()); i2 = Integer.parseInt(etMinute.getText().toString()); startTime(); break; case R.id.stopTime: stoptTime(); break; default: break; } } private Handler sHandler = new Handler() { public void handleMessage(Message msg) { if (msg.arg1 == -1) { timer.cancel(); } else if(msg.arg1==0){ time.setText("00:00"); } else if (msg.arg1 != 0 && ((int) msg.arg1/60) < 10 && msg.arg1%60 < 10) { time.setText("0" + (int) msg.arg1 / 60 + ":" + "0" + msg.arg1 % 60); startTime(); } else if (msg.arg1 != 0 && ((int) msg.arg1/60) > 10 && msg.arg1%60 < 10) { time.setText((int) msg.arg1 / 60 + ":" + "0" + msg.arg1 % 60); startTime(); } else if (msg.arg1 != 0 && ((int) msg.arg1/60) < 10 && msg.arg1%60 > 10) { time.setText("0" + (int) msg.arg1 / 60 + ":" + msg.arg1 % 60); startTime(); } else { time.setText((int) msg.arg1 / 60 + ":" + msg.arg1 % 60); startTime(); } }; }; private void startTime() { timer = new Timer(); task = new TimerTask() { @Override public void run() { if(i==0&&i2==0){ timer.cancel(); } if(i2==0&&i!=0){ Message msg = sHandler.obtainMessage(); msg.arg1 = i; sHandler.sendMessage(msg); } else if (i == 0&&i2!=0) { i2--; i = 60; Message msg = sHandler.obtainMessage(); msg.arg1 = i + i2 * 60; sHandler.sendMessage(msg); } else { i--; Message msg = sHandler.obtainMessage(); msg.arg1 = i + i2 * 60; sHandler.sendMessage(msg); } } }; timer.schedule(task, 1000); } private void stoptTime() { timer.cancel(); } } ``` layout布局文件是 ```<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="vertical" tools:context="com.example.countt.MainActivity" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <EditText android:id="@+id/etMinute" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" > </EditText> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="分钟 "/> <EditText android:id="@+id/etSecond" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" > </EditText> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="秒 "/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="horizontal"> <TextView android:gravity="center" android:id="@+id/time" android:layout_width="match_parent" android:layout_height="300dp" android:text="00:00" android:textColor="#0000ff" android:textSize="40sp" /> </LinearLayout> <Button android:id="@+id/btnStartTime" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="开始计时" /> <Button android:id="@+id/stopTime" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="停止计时" /> </LinearLayout> ``` 图 ![图片说明](https://img-ask.csdn.net/upload/201604/27/1461743579_198024.png)
更新 AlertDialog的 TextView结果
每次在对话框中设置textView的结果,应用会崩溃。对话框是通过链接包含textView的xml,并且这个textView就是需要更新的。 AlertDialog.Builder alert = new AlertDialog.Builder(this); LayoutInflater factory = LayoutInflater.from(this); resultOne=(TextView)findViewById(R.id.resultOne); //resultone is a textview in xml dialog resultOne.setText("hello"); //this code is making the app close final View textEntryView = factory.inflate(R.layout.dialog, null); alert.setView(textEntryView); alert.show();
android 2048 分数显示问题 调用MainActivity中的Show函数程序崩溃
public class MainActivity extends AppCompatActivity { private static MainActivity mainactivity = null; public static int Score = 0; public TextView text; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); text = (TextView)findViewById(R.id.tvScore); text.setText("333333333333333333333333333"); } public MainActivity() { mainactivity = this; } public static MainActivity getMainActivity() { return mainactivity; } public void show() { text.setText(Score+""); } public void clearScore(){ Score = 0; show(); } public void addScore(int s){ Score+=s; show(); } } 在GameView中调用clearScore()初始化程序会崩溃去掉MainActivity.getMainActivity().clearScore(); 可以运行但是分数无法显示 private void startGame() { for (int y = 0; y < 4; y++) { for (int x = 0; x < 4; x++) { cardsMap[x][y].setNum(0); } } MainActivity.getMainActivity().clearScore(); addRandomNum(); // 开始时先有两个方格有数字 addRandomNum(); } 总之就是调用涉及到分数显示Show()函数的时候 程序崩溃 ![![![图片说明](https://img-ask.csdn.net/upload/201707/13/1499948382_143023.png)图片说明](https://img-ask.csdn.net/upload/201707/13/1499948377_746397.png)图片说明](https://img-ask.csdn.net/upload/201707/13/1499948373_650221.png)
Android程序在手机上运行崩溃但是在模拟器上能运行但是还有一个模拟器也是崩溃的
package darkhorse.english.app; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import android.app.Activity; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.View.OnClickListener; import android.widget.AutoCompleteTextView; import android.widget.CursorAdapter; import android.widget.ImageButton; import android.widget.TextView; public class LookupActivity extends Activity implements OnClickListener, TextWatcher { private final String DATABASE_PATH = android.os.Environment .getExternalStorageDirectory().getAbsolutePath() + "/dictionary"; private AutoCompleteTextView autocompletetextview; private final String DATABASE_FILENAME = "dictionary.db"; private SQLiteDatabase database; private ImageButton lookupbutton; private TextView textview; private ImageButton clearbutton; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.lookup_layout); database = openDatabase(); lookupbutton = (ImageButton) findViewById(R.id.lookupbutton); textview = (TextView) findViewById(R.id.textview); clearbutton = (ImageButton) findViewById(R.id.clearbutton); autocompletetextview = (AutoCompleteTextView) findViewById(R.id.autocompletetextview); lookupbutton.setOnClickListener(this); autocompletetextview.addTextChangedListener(this); clearbutton.setOnClickListener(new View.OnClickListener() { public void onClick(View arg0) { // TODO Auto-generated method stub autocompletetextview.setText(""); textview.setText(""); } }); } public class DictionaryAdapter extends CursorAdapter { private LayoutInflater layoutInflater; @Override public CharSequence convertToString(Cursor cursor) { return cursor == null ? "" : cursor.getString(cursor.getColumnIndex("_id")); } private void setView(View view, Cursor cursor) { TextView tvWordItem = (TextView) view; tvWordItem.setText(cursor.getString(cursor.getColumnIndex("_id"))); } @Override public void bindView(View view, Context context, Cursor cursor) { setView(view, cursor); } @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { View view = layoutInflater.inflate(R.layout.word_list_item, null); setView(view, cursor); return view; } public DictionaryAdapter(Context context, Cursor c, boolean autoRequery) { super(context, c, autoRequery); layoutInflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); } } public void afterTextChanged(Editable s) { // 必须将English字段的别名设为_id Cursor cursor = database.rawQuery( "select english as _id from t_words where english like ?", new String[] { s.toString() + "%" }); DictionaryAdapter dictionaryAdapter = new DictionaryAdapter(this, cursor, true); autocompletetextview.setAdapter(dictionaryAdapter); } public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } public void onTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub } public void onClick(View view) { String sql = "select chinese from t_words where english=?"; Cursor cursor = database.rawQuery(sql, new String[] { autocompletetextview.getText().toString() }); String result = "未找到该单词."; // 如果查找单词,显示其中文的意思 if (cursor.getCount() > 0) { // 必须使用moveToFirst方法将记录指针移动到第1条记录的位置 cursor.moveToFirst(); result = cursor.getString(cursor.getColumnIndex("chinese")); } // 显示查询结果对话框 textview.setText(result); } private SQLiteDatabase openDatabase() { try { // 获得dictionary.db文件的绝对路径 String databaseFilename = DATABASE_PATH + "/" + DATABASE_FILENAME; File dir = new File(DATABASE_PATH); // 如果/sdcard/dictionary目录中存在,创建这个目录 if (!dir.exists()) dir.mkdir(); // 如果在/sdcard/dictionary目录中不存在 // dictionary.db文件,则从res\raw目录中复制这个文件到 // SD卡的目录(/sdcard/dictionary) if (!(new File(databaseFilename)).exists()) { // 获得封装dictionary.db文件的InputStream对象 InputStream is = getResources().openRawResource( R.raw.dictionary); FileOutputStream fos = new FileOutputStream(databaseFilename); byte[] buffer = new byte[8192]; int count = 0; // 开始复制dictionary.db文件 while ((count = is.read(buffer)) > 0) { fos.write(buffer, 0, count); } fos.close(); is.close(); } // 打开/sdcard/dictionary目录中的dictionary.db文件 SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase( databaseFilename, null); return database; } catch (Exception e) { } return null; } } 求高手给看看
调用 getStringArray 后 android 程序崩溃
程序出现了下面的错误,在 emulator中奔溃了。现在还不确定什么问题。 Logcat: E/AndroidRuntime( 1928): FATAL EXCEPTION: main E/AndroidRuntime( 1928): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.packtpub.kitchendroid/com.packtpub.kitchendroid.QuestionActivity}: android.content.res.Resources$NotFoundException: String array resource ID #0x0 Java-CODE: package com.packtpub.kitchendroid; import android.app.Activity; import android.os.Bundle; import android.content.res.Resources; import android.widget.Button; import android.widget.TextView; import android.view.ViewGroup; public class QuestionActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); initQuestionScreen(); } private Button[] buttons; private static int getQuestionID(final Resources res, final int index) { final String[] questions = res.getStringArray(R.array.questions); return res.getIdentifier(questions[index], "array", "com.packpub.kitchenroid"); } private int getQuestionIndex() { return getIntent().getIntExtra("KitchenDroid.Question", 0); } private void initQuestionScreen() { TextView question = (TextView)findViewById(R.id.question); ViewGroup answers = (ViewGroup)findViewById(R.id.answers); Resources resources = getResources(); int questionID = getQuestionID(resources, getQuestionIndex()); //Crashes after below line of code String[] quesionData = resources.getStringArray(questionID); // question.setText(quesionData[0]); // int answerCount = quesionData.length - 1; // buttons = new Button[answerCount]; // for(int i = 0; i < answerCount; i++) { // String answer = quesionData[i + 1]; // Button button = new Button(this); // button.setText(answer); // answers.addView(button); // buttons[i] = button; // } } } strings.xml: <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">QuestionActivity</string> <string-array name="questions"> <item>vegetarian</item> <item>size</item> </string-array> <string-array name="vegetarian"> <item>Are you a Vegetarian?</item> <item>Yes</item> <item>No</item> <item>I\'m a vegan</item> </string-array> <string-array name="size"> <item>How much do you feel like eating?</item> <item>A large meal</item> <item>Just a nice single serving of food</item> <item>Some finger foods</item> <item>Just a snack</item> </string-array> </resources> main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/question" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Please wait..." /> <LinearLayout android:id="@+id/answers" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" > <Button android:id="@+id/yes" android:text="Yes!" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/no" android:text="No!" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/maybe" android:text="Maybe?" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout> <Button android:id="@+id/skip" android:layout_marginTop="12sp" android:text="Skip Question" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/view" android:layout_marginTop="12sp" android:text="Feed Me!" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout> package com.packtpub.kitchendroid; public final class R { public static final class array { public static final int questions=0x7f050000; public static final int size=0x7f050002; public static final int vegetarian=0x7f050001; } public static final class attr { } public static final class dimen { public static final int half_width=0x7f030000; } public static final class id { public static final int answers=0x7f060001; public static final int maybe=0x7f060004; public static final int no=0x7f060003; public static final int question=0x7f060000; public static final int skip=0x7f060005; public static final int view=0x7f060006; public static final int yes=0x7f060002; } public static final class layout { public static final int main=0x7f020000; } public static final class string { public static final int app_name=0x7f040000; } }
android,刚点debug就崩溃了
![图片说明](https://img-ask.csdn.net/upload/201612/27/1482790671_843835.jpg) MainActivity.java ``` package com.emple.divide; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.GridView; import android.widget.TextView; public class MainActivity extends Activity { private String[] str=new String[]{"one","two","three","four"}; private GridView gv; private TextView tv; private Button bt; ArrayAdapter<String> arrayAdapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,str); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); gv=(GridView)findViewById(R.id.gv); tv=(TextView)findViewById(R.id.tv); bt=(Button)findViewById(R.id.bt); bt.setOnClickListener(new bt_click()); gv.setOnItemClickListener(new gv_click()); } class bt_click implements OnClickListener { public void onClick(View v) { gv.setNumColumns(2); gv.setAdapter(arrayAdapter); } } class gv_click implements OnItemClickListener { public void onItemClick(AdapterView<?> parent,View v,int position,long arg3) { switch (arrayAdapter.getCount()) { case 4: tv.setText(str[position]); break; default:break; } } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } } ```
Android的listview问题
package com.example.listview; import android.app.Activity; import android.content.Context; import android.database.DataSetObserver; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ListAdapter; import android.widget.ListView; import android.widget.TextView; public class MainActivity extends Activity { private Context mContext; private TextView textview; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //1找到listview ListView listview=(ListView)findViewById(R.id.listview); //2创建一个adapter对象,以为下面已经申明了一个类 mylistadpater mylistadpater1=new mylistadpater(); //3将adapter设置个listview listview.setAdapter(mylistadpater1); } class mylistadpater extends BaseAdapter{//default base simple @Override public int getCount() { // TODO Auto-generated method stub //集合里面又多少条目,告诉listview要显示多少条目 return 10; } //根据position获取listview上面的bean书局,该方法不影响数据的展示,可以先不实现 @Override public Object getItem(int position) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { textview=(TextView)findViewById(R.id.TextView); textview.setText("position:"+position); return textview; } } } 不报错,但是安装到虚拟机上面就立刻崩溃
FindViewById()引起的应用崩溃
如果没有下面这两行代码就正常运行,但是加上应用就会崩溃。 EditText convertValue = (EditText) findViewById(R.id.et_value_convert); TextView convertResult = (TextView) findViewById(R.id.txt_result); 完整代码如下: package com.doubleelite.maxtest; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.EditText; import android.widget.TextView; public class ConverterActivity extends Activity { EditText convertValue = (EditText) findViewById(R.id.et_value_convert); TextView convertResult = (TextView) findViewById(R.id.txt_result); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_converter); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_converter, menu); return true; } // Custom method to handle button clicks. public void onClick(View v) { switch(v.getId()) { case R.id.btn_to_cel: convertResult.setText(String.valueOf(convertFahrenheitToCelsius(Integer.valueOf(convertValue.getText().toString())))); } } private float convertFahrenheitToCelsius(float f) { return (f-32) * (5/9); } private float convertCelsiusToFahrenheit(float c) { return c * (9/5) + 32; } } XML文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".ConverterActivity" > <EditText android:id="@+id/et_value_convert" android:layout_width="match_parent" android:layout_height="wrap_content" android:ems="10" android:hint="@string/text_value_convert" android:inputType="number" /> <Button android:id="@+id/btn_to_cel" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/button_celsius" android:onClick="onClick" /> <Button android:id="@+id/btn_to_fahr" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/button_fahr" android:onClick="onClick" /> <TextView android:id="@+id/txt_result" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="Medium Text" android:textAppearance="?android:attr/textAppearanceMedium" tools:ignore="HardcodedText" /> </LinearLayout>
关于android listView子项的问题
初学Android listView,在子项list_item.xmls中的代码如下: ``` <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:id="@+id/left_layout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="left" > <TextView android:id="@+id/left_text_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" /> </LinearLayout> <LinearLayout android:id="@+id/right_layout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right" > <TextView android:id="@+id/right_text_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" /> </LinearLayout> </LinearLayout> ``` 这样的话整个程序都能运行,如果将最外层的 ``` <LinearLayout></LinearLayout> ``` 改成 ``` <RelativeLayout></RelativeLayout> ``` ,程序就会崩溃。请问各位,难道在listView的子项中,最外层的布局必须要用LinearLayout吗?
Android 里面自己定义的Adapter运行崩溃
class MyAdapter extends ArrayAdapter { public MyAdapter(Context context, int resource) { super(context, resource); } @Override public long getItemId(int position) { return position; } ## ** @Override ## public int getCount() { ## return imgs.length; ## }** @Override public View getView(int position, View convertView, ViewGroup parent) { View view=null; if(convertView==null){ LayoutInflater inflater= (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE); inflater.inflate(R.layout.item,null); }else { view=convertView; } ImageView iv=(ImageView)view.findViewById(R.id.imageView); TextView tv= (TextView) view.findViewById(R.id.textView); iv.setImageResource(imgs[position]); tv.setText(names[position]); return view; } } 运行到加黑的getCount的时候程序就会崩溃,编程小白,望指教
运行到setContentView这里崩溃了
这是第一行代码里面的一个项目,运行后崩溃: ![图片说明](https://img-ask.csdn.net/upload/201702/12/1486848687_748230.jpg) MainActivity.java ``` package com.example.newsapp; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.Window; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } } ``` News.java ``` package com.example.newsapp; public class News { private String title; private String content; public String getTitle() { return title; } public void setTitle(String title) { this.title=title; } public String getContent() { return content; } public void setContent(String content) { this.content=content; } } ``` NewsAdapter.java ``` package com.example.newsapp; import java.util.List; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.TextView; public class NewsAdapter extends ArrayAdapter<News> { private int resourceId; public NewsAdapter(Context context,int textViewResourceId,List<News> objects) { super(context,textViewResourceId,objects); resourceId=textViewResourceId; } @Override public View getView(int position,View convertView,ViewGroup parent) { News news=getItem(position); View view; if (convertView==null) { view=LayoutInflater.from(getContext()).inflate(resourceId,null); } else { view=convertView; } TextView newsTitleText=(TextView)view.findViewById(R.id.news_title); newsTitleText.setText(news.getTitle()); return view; } } ``` NewsContentActivity.java ``` package com.example.newsapp; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.view.Window; public class NewsContentActivity extends FragmentActivity { public static void actionStart(Context context,String newsTitle,String newsContent) { Intent intent=new Intent(context,NewsContentActivity.class ); intent.putExtra("news_title",newsTitle); intent.putExtra("news_content",newsContent); context.startActivity(intent); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.news_content); FragmentManager fragmentManager=getSupportFragmentManager(); String newsTitle=getIntent().getStringExtra("news_title"); String newsContent=getIntent().getStringExtra("news_content"); NewsContentFragment newsContentFragment=(NewsContentFragment)fragmentManager.findFragmentById(R.id.news_content_fragment); newsContentFragment.refresh(newsTitle,newsContent); } } ``` NewsContentFragment.java ``` package com.example.newsapp; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; public class NewsContentFragment extends Fragment { private View view; @Override public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) { view=inflater.inflate(R.layout.news_content_frag,container,false ); return view; } public void refresh(String newsTitle,String newsContent) { View visibilityLayout=view.findViewById(R.id.visibility_layout); visibilityLayout.setVisibility(View.VISIBLE); TextView newsTitleText=(TextView)view.findViewById(R.id.news_title); TextView newsContentText=(TextView)view.findViewById(R.id.news_content); newsTitleText.setText(newsTitle); newsContentText.setText(newsContent); } } ``` NewsTitleFragment.java ``` package com.example.newsapp; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; public class NewsTitleFragment extends Fragment implements OnItemClickListener { private ListView newsTitleListView; private List<News> newsList; private NewsAdapter adapter; private boolean isTwoPane; @Override public void onAttach(Activity activity) { super.onAttach(activity); newsList=getNews(); adapter=new NewsAdapter(activity,R.layout.news_item,newsList); } @Override public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) { View view=inflater.inflate(R.layout.news_title_frag,container,false ); newsTitleListView=(ListView)view.findViewById(R.id.news_title_list_view); newsTitleListView.setAdapter(adapter); newsTitleListView.setOnItemClickListener(this ); return view; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); if (getActivity().findViewById(R.id.news_content_layout)!=null ) isTwoPane=true; else isTwoPane=false; } @Override public void onItemClick(AdapterView<?> parent,View view,int position,long id) { News news=newsList.get(position); if (isTwoPane) { NewsContentFragment newsContentFragment=(NewsContentFragment)getFragmentManager().findFragmentById(R.id.news_content_fragment); newsContentFragment.refresh(news.getTitle(),news.getContent()); } else { NewsContentActivity.actionStart(getActivity(),news.getTitle(),news.getContent()); } } private List<News> getNews() { List<News> newsList=new ArrayList<News>(); News news1=new News(); news1.setTitle("标题"); news1.setContent("内容"); newsList.add(news1); News news2=new News(); news2.setTitle("日记"); news2.setContent("去旅游"); newsList.add(news2); return newsList; } } ```
Android线程与ui绘制的问题
当然知道只能在主线程更新UI,不过我有个非常费时的UI绘制操作(就是一堆自定义的view退出时保存在文件里,然后进入时读取文件绘制ui恢复界面,实测短板出现在view的绘制过程) 然后我一开始觉得只要View不添加就只是对象而已,然后尝试新开一个线程把这些控件new出来,然后在主线程addView,结果在我的平板(5.1.1)上完美运行,在手机(4.2.2)上闪退。 继续测试手机,新开一个线程,一个执行一句new一个edittext就崩溃,不过更加奇怪的是换成textview就正常。完全不明就里。 **ps,大家有什么替代方法,也望不吝赐教,感激不尽** 按照大家的提醒贴代码(实际的代码太长不便理解,我就写了一个TextView和EditText的,意思一样,而且方便大家理解。) @Override protected void onAttachedToWindow() { super.onAttachedToWindow(); new Thread(new Runnable() { @Override public void run() { try { new TextView(mActivity); } catch (Exception e) { Log.d("debug", Log.getStackTraceString(e)); return; } Log.d("debug", "成功地new了一个TextView"); try { new EditText(mActivity); } catch (Exception e) { Log.d("debug", Log.getStackTraceString(e)); return; } Log.d("debug", "成功地new了一个EditText"); } }).start(); } 附上Logcat输出: 02-23 03:29:13.144 16364-16440/com.example.multicalc D/debug: 成功地new了一个TextView 02-23 03:29:13.156 16364-16440/com.example.multicalc D/debug: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() at android.os.Handler.<init>(Handler.java:197) at android.os.Handler.<init>(Handler.java:111) at android.widget.Editor$UserDictionaryListener.<init>(Editor.java:3836) at android.widget.Editor.<init>(Editor.java:192) at android.widget.TextView.createEditorIfNeeded(TextView.java:8475) at android.widget.TextView.<init>(TextView.java:1114) at android.widget.EditText.<init>(EditText.java:60) at android.widget.EditText.<init>(EditText.java:56) at android.widget.EditText.<init>(EditText.java:52) at com.example.multicalc.matrix.ui.WorkWindow$1.run(WorkWindow.java:174) at java.lang.Thread.run(Thread.java:856)
Android连接SQLserver出现问题
我根据论坛的一个帖子的代码来改的注册界面,但是当传值时系统就崩溃了 显示No message resource found for message property prop.servertype 这是DButil的代码 public class DBUtil { private Connection connection; public static Connection getSQLConnection(String ip, String user, String pwd, String db) { Connection con = null; try { Class.forName("net.sourceforge.jtds.jdbc.Driver"); con = DriverManager.getConnection("jdbc:jtds:sqlserver://" + ip + ":1433/" + db, user, pwd); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return con; } public static String QuerySQL(String UserName, String Name, String PassWord, String Email) { String result = ""; try { Connection connection = DBUtil.getSQLConnection("94.191.104.***", "sa", "123456", "txl"); String sql = "insert into tuser values(" + UserName + "," + Name + "," + PassWord + "," + Email + ");"; Statement stmt = connection.createStatement();// PreparedStatement stat = connection.prepareStatement(sql); ResultSet rs = stat.executeQuery();//执行查询语句 while (rs.next())//判断是否查询出数据 { result= "1" ; } stmt.close(); connection.close(); } catch (SQLException e) { e.printStackTrace(); result += "查询数据异常!" + e.getMessage(); } return result; } public void setConnection(Connection connection) { this.connection = connection; } } 这是注册界面的代码 public class SignActivity extends Activity { private TextView aUseName; private TextView aName; private TextView aPassWord; private TextView aRpassWord; private TextView aEmail; private Button bSign; private Handler handler; boolean isTip1=false,isTip2=false,isTip3=false,isTip4=false; @Override protected void onCreate( Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.sign); intView(); initListener(); WorkThread wt=new WorkThread(); wt.start(); } private void initListener() { bSign.setOnClickListener(new View.OnClickListener() { private Editable text; @Override public void onClick(View view) { String UserName = aUseName.getText().toString(); String Name = aName.getText().toString(); String PassWord = aPassWord.getText().toString(); String RpassWord = aRpassWord.getText().toString(); String Email = aEmail.getText().toString(); if (TextUtils.isEmpty(UserName)) {//用户名为空 aUseName.setError("用户名不能为空"); return; } //限制用户名长度在3-10位 if(UserName.length()>10||UserName.length()<3){ aUseName.setError("请输入3-10位数用户名"); return; }else { isTip1=true; } //限制输入密码长度在6-10位 if(PassWord.length()>10||PassWord.length()<6){ aPassWord.setError("请输入6-10位数密码"); return; }else { isTip2=true; } //限制昵称长度 if(Name.length()>7){ aPassWord.setError("请输入7位数以内昵称"); return; } //判断确认密码是否和密码相等 if (PassWord.equals(RpassWord)) {//确认密码和密码相等 isTip3=true; }else { //确认密码和密码不相等 aRpassWord.setError("两次输入密码不相等"); return; } //判断电子邮箱是否为空 if (TextUtils.isEmpty(Email)) {//电子邮箱为空 aEmail.setError("电子邮箱不能为空"); return; } //判断电子邮箱格式 if(Email.matches("[a-zA-Z0-9._-]+@[a-z0-9]+.[a-z]+")){ isTip4=true; }else{ aEmail.setError("电子邮箱格式不正确"); return; } if(isTip1==true&&isTip2==true&&isTip3==true&&isTip4==true) { Message m = handler.obtainMessage();//获取事件 Bundle b = new Bundle(); b.putString("Usename", UserName); b.putString("Name", Name);//以键值对形式放进 Bundle中 b.putString("Password", PassWord); b.putString("Email", Email); m.setData(b); m.what = 0; handler.sendMessage(m); } } }); } class WorkThread extends Thread{ @Override public void run(){ Looper.prepare(); handler = new Handler() { @Override public void handleMessage(Message m) { super.handleMessage(m); Bundle b = m.getData();//得到与信息对用的Bundle String Usename = b.getString("Usename");//根据键取值 String Name = b.getString("Name"); String Password = b.getString("Password");//根据键取值 String Email = b.getString("Email"); DBUtil db = new DBUtil();//调用数据库查询类 String ret = db.QuerySQL(Usename,Name,Password,Email);//得到返回值 if (ret.equals("1"))//为1,页面跳转,登陆成功 { Toast.makeText(SignActivity.this, "注册成功", Toast.LENGTH_SHORT).show(); } Toast.makeText(SignActivity.this, "注册失败", Toast.LENGTH_SHORT).show(); } }; Looper.loop();//Looper循环,通道中有数据执行,无数据堵塞 } } private void intView(){ aUseName =(TextView)findViewById(R.id.ausename); aName=(TextView)findViewById(R.id.aname); aPassWord=(TextView)findViewById(R.id.apassword); aRpassWord=(TextView)findViewById(R.id.arpassword); aEmail=(TextView)findViewById(R.id.aemail); bSign= findViewById(R.id.bsign); } }
fragment间跳转时程序崩溃
我在一个Activity中加载了三个fragment,每个fragment里有几张图片,从一个fragment跳转到另一个fragment时程序就没反应了,直接崩溃,但是如果把图片减少或者全部移除,跳转就完全没有问题,请问这个问题如何解决? public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setUpMenu(); changeFragment(new JingdianFragment() ); setListener(); } private void setUpMenu() { leftMenu = (Button) findViewById(R.id.title_bar_left_menu); text1 = (TextView) findViewById(R.id.text1); text2 = (TextView) findViewById(R.id.text2); text3 = (TextView) findViewById(R.id.text3); text4 = (TextView) findViewById(R.id.text4); topFrameLayout = (FrameLayout) findViewById(R.id.topFrameLayout); text1.getBackground().setAlpha(200); text2.getBackground().setAlpha(200); text3.getBackground().setAlpha(200); text4.getBackground().setAlpha(200); topFrameLayout.getBackground().setAlpha(130); // attach to current activity; resideMenu = new ResideMenu(this); resideMenu.setBackground(R.drawable.menu_background); resideMenu.attachToActivity(this); resideMenu.setMenuListener(menuListener); // valid scale factor is between 0.0f and 1.0f. leftmenu'width is // 150dip. resideMenu.setScaleValue(0.6f); // 禁止使用右侧菜单 resideMenu.setDirectionDisable(ResideMenu.DIRECTION_RIGHT); // create menu items; itemUserInfo = new ResideMenuItem(this, R.drawable.icon_home, "个人信息"); itemCanTour = new ResideMenuItem(this, R.drawable.icon_home, "会旅游"); itemOrder = new ResideMenuItem(this, R.drawable.icon_home, "我的订单"); itemShare = new ResideMenuItem(this, R.drawable.icon_home, "个人分享"); itemHelp = new ResideMenuItem(this, R.drawable.icon_settings, "帮助"); resideMenu.addMenuItem(itemUserInfo, ResideMenu.DIRECTION_LEFT); resideMenu.addMenuItem(itemCanTour, ResideMenu.DIRECTION_LEFT); resideMenu.addMenuItem(itemOrder, ResideMenu.DIRECTION_LEFT); resideMenu.addMenuItem(itemShare, ResideMenu.DIRECTION_LEFT); resideMenu.addMenuItem(itemHelp, ResideMenu.DIRECTION_LEFT); private void changeFragment(Fragment targetFragment) { resideMenu.clearIgnoredViewList(); getSupportFragmentManager().beginTransaction() .replace(R.id.main_fragment, targetFragment, "fragment") .setTransitionStyle(FragmentTransaction.TRANSIT_FRAGMENT_FADE) .commit(); } 以上是mainActivity中的主要方法,下面是xml文件的布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/jingdian_1" android:adjustViewBounds="true" android:scaleType="fitXY"/> <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/jingdian_2" android:adjustViewBounds="true" android:scaleType="fitXY"/> <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/jingdian_3" android:adjustViewBounds="true" android:scaleType="fitXY"/> <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/jingdian_4" android:adjustViewBounds="true" android:scaleType="fitXY"/> <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/jingdian_5" android:adjustViewBounds="true" android:scaleType="fitXY"/> <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/jingdian_6" android:adjustViewBounds="true" android:scaleType="fitXY"/> <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/jingdian_7" android:adjustViewBounds="true" android:scaleType="fitXY"/> </LinearLayout> </ScrollView> </LinearLayout> 其余两个XML文件跟这个一样。 为什么会卡死,求大神解答
安卓,点击了我同意,就崩溃了
![图片说明](https://img-ask.csdn.net/upload/201612/24/1482532099_426435.jpg) ![图片说明](https://img-ask.csdn.net/upload/201612/24/1482532115_877358.jpg) ![图片说明](https://img-ask.csdn.net/upload/201612/24/1482532128_315302.png) MainActivity.java ``` package com.ample.receive; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.CheckBox; import android.widget.TextView; public class MainActivity extends Activity implements OnClickListener{ private TextView myTextView1; private TextView myTextView2; private CheckBox myCheckBox; private Button myButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myCheckBox=(CheckBox)findViewById(R.id.myCheckBox); myCheckBox.setChecked(false); myCheckBox.setOnClickListener(this); myButton=(Button)findViewById(R.id.myButton); myButton.setEnabled(false); myButton.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.myCheckBox: if (myCheckBox.isChecked()) { myButton.setEnabled(true); myTextView2.setText("abc"); } else { myButton.setEnabled(false); myTextView1.setText(R.string.text); myTextView2.setText(R.string.no); } break; case R.id.myButton: if (myCheckBox.isChecked()) { myTextView1.setText(R.string.ok); } break; default:break; } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } } ```
android,输入100后,点击"确认"就崩了
``` public class MainActivity extends Activity implements OnClickListener { EditText editText; Button bt; TextView textView,textView1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText=(EditText)findViewById(R.id.edittext); bt=(Button)findViewById(R.id.button); textView=(TextView)findViewById(R.id.tv1); textView1=(TextView)findViewById(R.id.tv2); bt.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.button: String str=editText.getText().toString(); textView.setText(str+"以内的质数有:"); textView1.setText("2,3"); int n=Integer.parseInt(str); int i=5; int j=2; while(i<=n) { while(j<i) { j=2; if(i%j==0) break; if(i-1==j) textView1.append(","+i); j++; } i++; } break; default:break; } } } ``` ![图片说明](https://img-ask.csdn.net/upload/201802/21/1519179843_732851.png)
这个滑动式抽屉崩溃了
![图片说明](https://img-ask.csdn.net/upload/201701/29/1485657412_363310.jpg) SlidingDrawerActivity.java ``` package com.example.slidingdrawerdemo; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.ImageButton; import android.widget.SlidingDrawer; import android.widget.TextView; public class SlidingDrawerActivity extends Activity { private ImageButton imbg; private SlidingDrawer mDrawer; private TextView tv; private boolean flag; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_sliding_drawer); imbg=(ImageButton)findViewById(R.id.handle); mDrawer=(SlidingDrawer)findViewById(R.id.slidingdrawer); tv=(TextView)findViewById(R.id.tv); mDrawer.setOnDrawerOpenListener(new SlidingDrawer.OnDrawerOpenListener() { @Override public void onDrawerOpened() { // TODO Auto-generated method stub flag=true; imbg.setImageResource(R.drawable.abc_ic_search); } }); mDrawer.setOnDrawerCloseListener(new SlidingDrawer.OnDrawerCloseListener() { @Override public void onDrawerClosed() { // TODO Auto-generated method stub flag=false; imbg.setImageResource(R.drawable.abc_ic_search); } }); mDrawer.setOnDrawerScrollListener(new SlidingDrawer.OnDrawerScrollListener() { @Override public void onScrollStarted() { // TODO Auto-generated method stub tv.setText("开始拖动"); } @Override public void onScrollEnded() { // TODO Auto-generated method stub tv.setText("结束拖动"); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.sliding_drawer, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } } ``` activity_sliding_drawer.xml ![图片说明](https://img-ask.csdn.net/upload/201701/29/1485657674_92206.jpg)
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入  假设现有4个人
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
写在前面: 我是 扬帆向海,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的。 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。 用知识改变命运,让我们的家人过上更好的生活。 目录一、杨辉三角的介绍二、杨辉三角的算法思想三、代码实现1.第一种写法2.第二种写法 一、杨辉三角的介绍 百度
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
一 说明 如果是初学者,建议去网上寻找安装Mysql的文章安装,以及使用navicat连接数据库,以后的示例基本是使用mysql数据库管理系统; 二 准备前提 需要建立一张学生表,列分别是id,名称,年龄,学生信息;本示例中文章篇幅原因SQL注释略; 建表语句: CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // dosho
【图解经典算法题】如何用一行代码解决约瑟夫环问题
约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼。 问题描述:编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3…这样依次报),数到 m 的 士兵会被杀死出列,之后的士兵再从 1 开始报数。直到最后剩下一士兵,求这个士兵的编号。 1、方
致 Python 初学者
文章目录1. 前言2. 明确学习目标,不急于求成,不好高骛远3. 在开始学习 Python 之前,你需要做一些准备2.1 Python 的各种发行版2.2 安装 Python2.3 选择一款趁手的开发工具3. 习惯使用IDLE,这是学习python最好的方式4. 严格遵从编码规范5. 代码的运行、调试5. 模块管理5.1 同时安装了py2/py35.2 使用Anaconda,或者通过IDE来安装模
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,
程序员:我终于知道post和get的区别
IT界知名的程序员曾说:对于那些月薪三万以下,自称IT工程师的码农们,其实我们从来没有把他们归为我们IT工程师的队伍。他们虽然总是以IT工程师自居,但只是他们一厢情愿罢了。 此话一出,不知激起了多少(码农)程序员的愤怒,却又无可奈何,于是码农问程序员。 码农:你知道get和post请求到底有什么区别? 程序员:你看这篇就知道了。 码农:你月薪三万了? 程序员:嗯。 码农:你是怎么做到的? 程序员:
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
      11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI 算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下
日均350000亿接入量,腾讯TubeMQ性能超过Kafka
整理 | 夕颜出品 | AI科技大本营(ID:rgznai100) 【导读】近日,腾讯开源动作不断,相继开源了分布式消息中间件TubeMQ,基于最主流的 OpenJDK8开发的
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车? 某胡同口的煎饼摊一年能卖出多少个煎饼? 深圳有多少个产品经理? 一辆公交车里能装下多少个乒乓球? 一
相关热词 c# 输入ip c# 乱码 报表 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件
立即提问